2017-06-20 34 views
0

我发现下面的脚本,它是按标题打印结果列表的工作很好。 请帮助我学习,并添加python脚本点击选择链接从谷歌的搜索结果,例如点击网址从结果包含域名“教程”硒Python谷歌搜索,点击结果中的所选URL

from selenium import webdriver 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 

from pyvirtualdisplay import Display 
display = Display(visible=0, size=(800, 800)) 
display.start() 
driver = webdriver.Chrome() 
driver.get("http://www.google.com") 
input_element = driver.find_element_by_name("q") 
input_element.send_keys("python") 
input_element.submit() 

RESULTS_LOCATOR = "//div/h3/a" 

WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, RESULTS_LOCATOR))) 

page1_results = driver.find_elements(By.XPATH, RESULTS_LOCATOR) 
for item in page1_results: print(item.text) 

回答

0

尝试item.click()。这些项目实际上是Selenium链接对象。所以告诉Selenium点击它们就可以进入所需的页面。您可以通过检查链接文本进行选择性点击,并且如果您找到了要查找的内容,请执行item.click()。所以我们可以说有一个与在页面上它的单词“教程”的链接,...

for item in page_results: 
    if 'Tutorial' in item.text: 
     item.click() 
     break 
+0

感谢分享 – user3349980

+0

我试过,但不起作用,可能出现这种情况是由于项目值不是URL,但如果'item.text:item.get_attribute('href')。click(),错误发生的对象有没有属性'点击',请试试如果'教程',请指教,谢谢 – user3349980

+0

你有错误,因为item.get_attribute ('href')返回一个字符串,而不是Selenium对象。如果你有这个项目,只需使用item.click()。要获得更多帮助,您需要包含追溯和实际错误文本。 –