如何解决如何使用Selenium和python获取Google搜索结果链接
我正在尝试获取所有搜索结果链接并进行打印。我发现的问题是我无法使用单个搜索结果的xpath进行迭代,因为
elems = driver.find_elements_by_xpath('div [2] / div / div [1] / a')
是一个结果,下一个结果的链接是
elems = driver.find_elements_by_xpath('div [3] / div / div [1] / a')
div的索引值是对整个结果进行迭代的结果。目前,我只能获取索引值为div的一个链接。我想获取所有结果并将其附加到列表中以进行进一步处理。帮我解决这个问题
driver = webdriver.Chrome()
driver.get('http://www.google.com')
search_input = driver.find_element_by_name('q')
search_input.send_keys('stackoverflow')
search_input.send_keys(Keys.ENTER)
results = []
elems = driver.find_elements_by_xpath('div[2]/div/div[1]/a')
for elem in elems:
href = elem.get_attribute('href')
print(href)
results.append(href)
解决方法
创建一个计数器i并将其放在您的xpath中。 假设我是在xpath中使用它的整数计数器,然后使用
将其转换为字符串package main
import (
"fmt"
"sort"
)
func main() {
s := []string{"Go","[Bravo]","Gopher","[Alpha]","Grin","Delta"}
sort.Strings(s)
fmt.Println(s) // prints [Delta Go Gopher Grin [Alpha] [Bravo]]
}
,
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.List;
public class GooglesearchTests {
public static void main(String[] args) throws Exception {
System.setProperty("webdriver.chrome.driver","C:\\Users\\User\\Downloads\\chromedriver83\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("https://www.google.com/");
driver.findElement(By.name("q")).sendKeys("Testing");
Thread.sleep(Long.parseLong("1000"));
List<WebElement> LIST = driver.findElements(By.xpath("//ul[@role='listbox']//li/descendant::div[@class='sbl1']"));
System.out.println(LIST.size());
for (int i = 0; i < LIST.size(); i++)
{
//System.out.println(LIST.get(i).getText());
if (LIST.get(i).getText().contains("testing types"))
{
LIST.get(i).click();
break;
}
}
}
}
This is java code for google search results
every day google page elements are changing ( What i am doing is open google and type testing and store all results in list and pick "Testing Type" from list
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。