我尝试了下面的代码,但不完全正确。我怎样才能在前5个搜索结果中找到我的网站并点击链接
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
# driver.maximize_window()
driver.get("http://google.com")
search = driver.find_element_by_name('q')
search.click()
search.send_keys('python')
search.send_keys(Keys.ENTER)
first_five = driver.find_elements_by_xpath(".//*[@id='rso']//div//h3/a")[:5]
link = first_five[:5].find_element_by_xpath('//*[@id="rso"]/div[4]/div/div[1]/div/div/div[1]/a/div/cite')
link.click()
#driver.quit()
这有点让人困惑,但希望我能帮上忙
在您的示例中,您似乎正在尝试:
我在这里看到了两个问题:first_five已经收集了所有链接并占据了前五名,因为在这类链接的末尾有
[:5]
。 然后,当设置link时,看起来您正在尝试再次获取前5个元素,因为您正在执行link = first_five[:5]
并再次使用[:5]
此外,我不清楚您为什么使用此选项:
您已经找到列表中的所有元素,为什么需要再次搜索
我建议的解决方案是:
请注意,我在
first_five
中的定位器与您的不同,因为我在搜索时看到不同的谷歌页面,您可能希望使用适合您的页面希望这有帮助。祝你好运
编辑:
如果您需要从前5个链接中搜索指向某个网站的链接,请使用for循环,只要在元素的
href
属性中搜索您的url,如果url匹配,它将单击:相关问题 更多 >
编程相关推荐