对于Python,获取WebDriverException:消息:u' [JavaScript错误:" e为null"

时间:2015-03-04 18:27:30

标签: javascript python firefox selenium selenium-webdriver

我遇到的情况似乎只是在某些情况下才会在Firefox上失败。在我的代码中......

    driver.get(url('/Points/Inputs/'))
    assertRowTrue(driver, 2, 11, "True")

我收到了错误...

E           WebDriverException: Message: u'[JavaScript Error: "e is null" {file:
 "file:///tmp/anonymous7279155570809486473webdriver-profile/extensions/fxdriver@
googlecode.com/components/command-processor.js" line: 7854}]\'[JavaScript Error:
 "e is null" {file: "file:///tmp/anonymous7279155570809486473webdriver-profile/e
xtensions/fxdriver@googlecode.com/components/command-processor.js" line: 7854}]\
' when calling method: [nsICommandProcessor::execute]\nBuild info: version: \'2.
43.0\', revision: \'597b76b\', time: \'2014-09-09 20:52:14\'\nSystem info: host:
 \'8efca6f08729\', ip: \'172.17.0.3\', os.name: \'Linux\', os.arch: \'amd64\', o
s.version: \'3.13.0-24-generic\', java.version: \'1.7.0_65\'\nDriver info: drive
r.version: unknown' ; Screenshot: available via screen

环顾四周,这个问题在上一个问题here中被提及并解释了。我的特定情况的问题是它不是警报的结果,因此当我尝试关闭警报时......

driver.switch_to_alert().dismiss()

...我收到NoAlertPresentException

在Selenium解决这个问题之前,如果警报不是罪魁祸首,有没有办法解决这个错误?

更新(2015年6月6日)

尝试下面列出的答案工作了一段时间,但又回到了我看到的原始错误。这是我所做的测试失败的一个例子。

嘿@alecxc。这是一个失败的例子。我访问一个特定的网页,以验证[在表格中]的行包含我期望它的信息。为此,我使用了自己的定义 assertRowTrue()

assertRowTrue(driver, 2, 11, "Online")

这个def,我已经创建了代码。

def assertRowTrue(driver, row, column, value):
    try:
        WebDriverWait(driver, 30).until(
            expected_conditions.text_to_be_present_in_element((By.XPATH, "//tr["+str(row)+"]/td["+str(column)+"]/div"), value)
        )
    except TimeoutException:
        raise Exception("ERROR : VALUE NOT EQUAL TO EXPECTED VALUE \""+value+"\".  ACTUAL VALUE:  ", driver.find_element_by_xpath("//tr["+str(row)+"]/td["+str(column)+"]/div").text)

.. 指向表格中的位置& 表示期望值。在Firefox上,它在代码的 expected_condition()部分失败。但是,Chrome会运行此代码而不会出现任何错误。

1 个答案:

答案 0 :(得分:2)

您在selenium 2.43和firefox 36之间遇到兼容性问题

目前最简单的选择是将selenium 升级到2.45:

pip install --upgrade selenium