一尘不染

在“网站网址”中发生了错误:未捕获的TypeError:无法使用Selenium和Python读取未定义的属性“ getColomnSet”

selenium

我正在尝试将Selenium用于Python,或者Chrome网络驱动程序来自动下载文件。

我的程序可以完美运行到最后一步(单击“下载”按钮),此时将触发一个带有文本的对话框:

“在’站点URL’中发生了一个错误:未捕获的TypeError:无法读取undefined41的属性’getColomnSet’

此错误是什么意思,最可能的原因是什么?

作为参考,这是我程序的最后几个命令:

try:
    elem = wait.until(EC.presence_of_element_located((By.ID,'element_1_id')))
finally:
    elem1 = driver.find_element_by_id('element_1_id')
    elem2 = driver.find_element_by_id('element_2_id')
    action = ActionChains(driver).move_to_element(elem1).move_to_element(elem2)
    action.perform()
    elem2.click()

阅读 243

收藏
2020-06-26

共1个答案

一尘不染

此错误消息…

An error has occured in 'site url': Uncaught TypeError: Cannot read property 'getColomnSet' of undefined

…表示您的程序在尝试 下载 所需文件时无法读取属性 getColomnSet 。 __

可能的主要问题是js在客户端完全呈现 HTML
DOM
之前涉及到下载文档的调用。

相关的 HTML ,您之前的几 行代码错误堆栈跟踪 将使我们对出了什么问题有了更多的了解。

  • 在讨论之后,您可以采取一些措施来等待呈现完整的 DOM树
    • 检查页面是否已完全加载到Selenium中的通用功能
  • 几个事实:
    • 在您的代码试用中,我没有看到您与该元素进行交互,(By.ID,'element_1_id')因此可能可以删除presence_of_element_located()该元素的步骤(By.ID,'element_1_id')
    • 如果仍然需要presence_of_element_located((By.ID,'element_1_id'))捕获异常,请启动所需的步骤。
    • move_to_element()elem1elem2 进行调用并继续进行调用时,perform()您需要使用预期的条件来诱导 WebDriverWait ,如下所示: element_to_be_clickable(locator)

tl; dr(参考)

2020-06-26