【问题标题】:How to execute a javascript in a Python webdriver如何在 Python webdriver 中执行 javascript
【发布时间】:2012-02-15 23:13:36
【问题描述】:

Selenium 2 Python 网络驱动程序:

我试图单击一个由于悬停效果而被隐藏的元素,并正在寻找取消隐藏并能够选择该元素的选项。为此,我参考了以下示例:

在java中:

JavascriptExecutor je = (JavascriptExecutor) webDriver();

另一个例子:

browser.execute_script("document.getElementsByClassName('classname').style.display='block'")

当我运行上面的例子时,我得到了以下异常:

selenium.common.exceptions.WebDriverException: Message: '' 

我不确定是否必须包含任何类来执行 javascript。如果有任何遗漏,请告诉我。

【问题讨论】:

  • 尝试获取该元素(您要单击的)运行的实际 javascript,然后使用 browser.execute_script 执行它。为此,您可以使用 FireBug 之类的东西。

标签: javascript python selenium webdriver


【解决方案1】:

这是因为 getElementsByClassName 返回 DOM 元素数组。如果您需要访问第一个,请将您的 JS 更改为 document.getElementsByClassName('classname')[0].style.display='block'

【讨论】:

    【解决方案2】:

    我在 python 中使用下面的命令来点击一个隐藏的元素

    element=driver.find_element_by_xpath("//div[2]/div/div[2]/div[1]") 
    driver.execute_script("arguments[0].click();", element)
    

    【讨论】:

    • 这里的arguments 是什么?
    猜你喜欢
    • 1970-01-01
    • 2011-11-25
    • 2019-06-14
    • 2016-01-24
    • 2016-01-17
    • 1970-01-01
    • 2016-12-04
    • 2019-07-25
    相关资源
    最近更新 更多