【发布时间】:2019-08-25 17:24:47
【问题描述】:
我对 Selenium 很陌生,我正在尝试让代码点击正确的谷歌网络搜索链接。如果我添加或删除 s for:(driver.find_element_by_link_text) 它仍然不起作用,并且当它起作用时, click() 不起作用。我只能让两者中的一个同时工作。
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Chrome(executable_path='Python\chromedriver.exe')
driver.get('https://www.google.com/')
element = driver.find_element_by_name('q')
element.send_keys('Villanova')
element.send_keys(Keys.ENTER)
element = driver.find_element_by_link_text('Villanova College - King City').click()
time.sleep(5)
driver.close()
【问题讨论】:
-
你从不使用你的 import
NoSuchElementException可以从你的帖子中删除吗? -
欢迎来到 SO。
find_element_by_link_text将返回一个元素,而find_elements_by_link_text将返回一个元素列表,因此您在使用find_elements_by_link_text时无法单击。但是,如果在尝试单击之前可以找到该文本,请检查 chrome 开发工具。还要考虑同步,意味着让结果加载然后找到元素。 -
这是您得到的错误吗:selenium.common.exceptions.NoSuchElementException: 消息:没有这样的元素:无法找到元素:{"method":"link text","selector":"维拉诺瓦学院 - 国王城"}
-
Google 搜索结果页面中没有 linkText 作为 Villanova College - King City
标签: python selenium selenium-webdriver