【发布时间】:2020-02-03 00:37:03
【问题描述】:
我想通过 Selenium WebDriver 在网站上找到登录按钮并单击它。 HTML 代码如下:
<a class="myLoginButton" href="#"
onclick="fireLoginOrRegisterModalRequest('sign_in');ga('send', 'event',
'service_navigation', 'login', '1st_level');">
Login
</a>
但是无论我使用哪种方法来定位这个按钮,我总是得到错误:
selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素
我已经尝试了以下方法:
driver.implicitly_wait(10)
login_button = driver.find_element_by_class_name('myLoginButton')
login_button.click()
# login_button = driver.find_element_by_xpath('//button[text()="Login"]')
# login_button =
# driver.find_element_by_xpath("//button[@class='myLoginButton']
# [.='Login']")
# login_button = driver.find_element_by_css_selector('myLoginButton')
注释行是我使用的替代方法。
请对我温柔一点。我是一个绝对的 Python 和 Selenium 新手。
提前谢谢你!
【问题讨论】:
-
你错过了关于获取 url 的行,尝试在之后设置睡眠,然后再尝试获取元素,或者执行一些函数来检查网站是否已完全加载。这个 wait.until(EC.invisibility_of_element_located((By.XPATH .....)) 也很好用
-
请检查标签元素是否为iframe的子元素。如果是这样,你必须切换到框架,然后你可以点击元素
-
检查是否存在任何 iframe。如果您没有正确切换到框架,您将收到此错误。
-
据我所知没有 iFrame。