【问题标题】:Selenium, Trying to Find an Element [Python]Selenium,试图找到一个元素 [Python]
【发布时间】:2016-10-27 00:15:17
【问题描述】:

我正在尝试使用Selenium 模块在我的大学邮件中输入用户名和密码。这是我试图定位的 id 的属性值:

<input id="ContentPlaceHolder1_UsernameTextBox" name="username" tabindex="1" placeholder="FAU Net ID" value="" autocomplete="false" type="text">

这是我试图在我的程序中找到它的方式:

userElem = browser.find_element_by_id('ContentPlaceHolder1_UsernameTextBox')

但这是我遇到的错误:

例外-:

Traceback (most recent call last):
  File "<pyshell#10>", line 1, in <module>
    emailElem = browser.find_element_by_id('ContentPlaceHolder1_UsernameTextBox')
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 269, in find_element_by_id
    return self.find_element(by=By.ID, value=id_)
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 752, in find_element
    'value': value})['value']
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 236, in execute
    self.error_handler.check_response(response)

  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 192, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: [id="ContentPlaceHolder1_UsernameTextBox"]

谢谢,任何帮助将不胜感激。

编辑:

此页面仅供参考

Link

【问题讨论】:

  • 不看页面很难判断。您可以使用 DevTools、Firebug 等确保页面上存在该元素
  • Selenium 不是也有find_element_by_name() 功能吗?你也可以试试那个,如果不使用xpath

标签: python selenium


【解决方案1】:

如果 Selenium 告诉您它找不到元素,那么它不存在。这通常有几个可能的原因:

  1. 你做了一些愚蠢的事情,比如错误地输入了元素名称。您确定这是正确的元素 ID 吗?
  2. 您不在您认为的页面上。您确定您在正确的页面上吗?您是否查看过browser.page_source 进行仔细检查?
  3. 页面加载时元素不存在,但稍后通过 Javascript 添加到页面中,可能是在设置的时间延迟之后或发生某些事件(例如鼠标单击)时。页面有这样的javascript吗?

【讨论】:

  • 另一种可能是元素在不同的框架中(1,2),这种情况的解决方法是调用driver.switch_to.frame
  • 噢,我总是忘记框架!
  • 你知道我做了brower.page_source 并且找不到任何元素,这就是问题所在。我将这个新窗口的 url 放入 `browser.get(url)' 中,现在它已经修复了。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2022-12-21
  • 1970-01-01
  • 1970-01-01
  • 2021-12-17
  • 2018-11-07
  • 2019-06-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多