【问题标题】:CLOSED - Python Selenium Can't find elements已关闭 - Python Selenium 找不到元素
【发布时间】:2017-03-30 17:34:18
【问题描述】:

我在使用 python 3.5 时遇到 selenium 问题,安装所有 Windows 更新后,我的所有 selenium 脚本都损坏了,每次都会收到相同的错误:

Traceback(最近一次调用最后一次): 文件“C:/Users/Carlo/Desktop/CEx/src/IE.py”,第 12 行,在 a=driver.find_element_by_xpath("//*[@id='un']") 文件“C:\Python35-32\lib\site-packages\selenium\webdriver\remote\webdriver.py”,第 293 行,在 find_element_by_xpath return self.find_element(by=By.XPATH, value=xpath) 文件“C:\Python35-32\lib\site-packages\selenium\webdriver\remote\webdriver.py”,第 752 行,在 find_element '价值':价值})['价值'] 文件“C:\Python35-32\lib\site-packages\selenium\webdriver\remote\webdriver.py”,第 236 行,在执行中 self.error_handler.check_response(响应) 文件“C:\Python35-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py”,第 192 行,在 check_response 引发异常类(消息、屏幕、堆栈跟踪) selenium.common.exceptions.NoSuchWindowException:消息:无法在关闭的窗口上找到元素

但是我真的不明白为什么,因为IE的窗口是打开的!

这是我的代码(只是为了检查为什么我不能让它工作得更多):

import time from 
selenium import webdriver

driver = webdriver.Ie()
driver.get('http://gala.test-platform.celtrino.com/Login.aspx')
time.sleep(10) 
driver.find_element_by_xpath(".//*[@id='un']")

代码在最后一行每次都失败,我仔细检查了 firepath 并且 xpath 是正确的,所以我真的不明白为什么它不起作用。

【问题讨论】:

  • .//*[@id=')un']" 是否与您使用的 XPath 完全相同,或者 id 中有错字?显然是"un" 而不是")un"
  • 我写错了,对不起:S 我只是纠正它
  • 我猜,这与您的代码无关,而与软件有关。您使用最新的IE webdriver-server 版本吗?
  • 嗨@Andersson 非常感谢帮助我,我正在使用这个:IEDriverServer_x64_2.53.1
  • 所以它必须是IE 浏览器问题。它的版本可能已更新,因此您可能需要降级到以前的版本

标签: python windows selenium xpath


【解决方案1】:

我知道,IE 的 xpath 有问题。它不直接支持 xpath。它需要第三方工具来做到这一点。因此,我建议您尝试使用 cssSelector 或任何其他选项。因为,元素有一个 ID,所以你可以使用它。这样更好。

driver.find_element_by_id("un");

【讨论】:

  • 嗨,我刚刚解决了这个问题,与 xpath 无关,命令现在正常工作,问题出在 IE 配置中:Internet 选项 --> 安全 --> "启用受保护所有区域上的“模式”都应选中或全部取消选中(我解决了所有未选中的问题)
猜你喜欢
  • 1970-01-01
  • 2021-12-17
  • 2018-11-07
  • 2019-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多