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

时间:2018-07-11 07:46:43

标签: javascript python selenium selenium-webdriver webdriver

我正在尝试使用Selenium for 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()

2 个答案:

答案 0 :(得分:1)

此错误消息...

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

...表示您的程序尝试下载所需文件时,无法读取属性 getColomnSet

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

相关的 HTML ,您之前的代码行错误堆栈跟踪中的更多内容可以使我们对怎么了。

解决方案

  • 在讨论之后,您可以采取一些措施来等待完整的DOM Tree呈现:
  • 一些事实:
    • 在您的代码试用中,我看不到您与元素(By.ID,'element_1_id')进行交互,因此可能可以删除元素presence_of_element_located()的{​​{1}}步骤。
    • 如果您仍然需要(By.ID,'element_1_id'),请捕获异常并启动所需的步骤。
    • elem1 elem2 上调用presence_of_element_located((By.ID,'element_1_id'))并继续调用move_to_element()时,您需要诱导 WebDriverWait expected_conditionselement_to_be_clickable(locator)

tl; dr(参考)

答案 1 :(得分:0)

尝试以下操作-在Salesforce Lightning UI屏幕上可以使用:

 WebElement element = driver.findElement(By.id("your ID"));
 JavascriptExecutor executor = (JavascriptExecutor)driver;
 executor.executeScript("arguments[0].click();", element);