Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对于Python,获取WebDriverException:Message:u';[JavaScript错误:“e为空”;_Javascript_Python_Firefox_Selenium_Selenium Webdriver - Fatal编程技术网

对于Python,获取WebDriverException:Message:u';[JavaScript错误:“e为空”;

对于Python,获取WebDriverException:Message:u';[JavaScript错误:“e为空”;,javascript,python,firefox,selenium,selenium-webdriver,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/anonymous7279155570809486473webdri

我遇到了一个场景,似乎只有在某些条件下才能在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
环顾四周,在前面的问题中提到并解释了这个问题。我的特定场景的问题是它不是警报的结果,所以当我尝试关闭警报时

driver.switch_to_alert().dismiss()
…我收到一个
NoAlertPresentException

在Selenium着手解决此问题之前,如果警报不是罪魁祸首,是否有办法避免此错误

更新(2015年6月6日) 尝试下面列出的答案有一段时间有效,但返回到我看到的原始错误。下面是一个失败的测试示例

Hey@alecxc。下面是一个失败的示例。我访问一个特定的网页,以验证[表中]的一行是否包含我希望它包含的信息。为此,我使用了自己的定义assertRowTrue()

assertRowTrue(驱动程序,2,11,“联机”)

这个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上,它在期望值条件()下失败部分代码。但是,Chrome运行此代码时没有任何错误。

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

现在最简单的选择是将selenium升级到2.45:

pip install --upgrade selenium

您使用的是哪一个firefox版本?Mozilla firefox 36.0I曾经遇到一个问题,错误是由出现在
quit()时的警报引起的
正在执行。我实际上看不到警报,因为一切都发生得太快。我添加了关闭警报的代码,但后来发现有时此代码执行得太快:警报是异步创建的,但
dislose()
有时会在警报存在之前执行。检查您是否正处于比赛状态的快速方法是在
驾驶员之前添加
时间。睡眠()
。切换到\u警报()。解除()
。我成功地将selenium升级到2.45,但当我运行测试场景时,它仍然失败,并显示相同的错误消息。@rwbyrd在我删除答案之前,只需快速检查一下:尝试将firefox降级到34.0.5。抱歉,现在引发了很多火灾。我明天将尝试此功能,并返回给您。嘿@alecxe。我刚刚完成了此操作一次尝试&解决了问题。将selenium升级并将Firefox降级到34.0.5的组合使相关测试成功运行。我提到过你很棒吗?谢谢你的帮助!嘿@alecxe,我今天早上又遇到了这个问题。我尝试使用36,然后降级到34.0.5,问题仍然存在。问题之一在这再次发生之前发生的变化是Windows 7在过去几天中安装了一些下载。有什么建议吗?