如何处理JavaScript错误:当尝试点击Firefox中的浏览器弹出窗口时,“e为null”

时间:2014-07-31 20:04:06

标签: javascript firefox testing selenium-webdriver watir-webdriver

当使用selenium-webdriver的警报方法时,我遇到了JavaScript错误:" e为null"

代码:

browser = Watir::Browser.new :firefox
browser.alert.ok; sleep 5

错误:

Selenium::WebDriver::Error::UnknownError: [JavaScript Error: "e is null" {file: "file:///var/folders/f4/rz3xgqkj22zdyldyzrnyx4v40000gn/T/webdriver-profile20140731-47367-tyngix/extensions/fxdriver@googlecode.com/components/command_processor.js" line: 7716}]'
[JavaScript Error: "e is null" {file: "file:///var/folders/f4/rz3xgqkj22zdyldyzrnyx4v40000gn/T/webdriver-profile20140731-47367-tyngix/extensions/fxdriver@googlecode.com/components/command_processor.js"
line: 7716}]' when calling method: [nsICommandProcessor::execute]

环境:

  • ' selenium-webdriver',' 2.42.0'
  • Firefox 31.0
  • MAC 10.9
  • Ruby 2.0

非常感谢任何建议。谢谢!

4 个答案:

答案 0 :(得分:1)

我是由JavaScript警报引起的。有一个Ajax日期选择器,间歇性地部分呈现。虽然这应该在应用程序中得到纠正,但同时我可以用:

处理它
try{
    driver.findElement(By.xpath("//span")).click();
   } catch (UnhandledAlertException uae) {
    driver.switchTo.alert().accept();
    driver.findElement(By.xpath("//span")).click();
   }

我还想指出我使用的是WebDriver,因此语法可能会有所不同。

答案 1 :(得分:1)

所以这不是你想听到的,但这是我的超级黑客解决方案:

  target=browser.ul(:id => 'editor_sections').li(:index => j)
  target.drag_and_drop_by -300,200
  begin
    browser.button(:id => 'editor_panel_save').when_present.click
    puts "clicked save for module sidebar"
  rescue => e
    begin
      browser.alert.ok
      puts Thread.current["name"].white.on_red + ": No events for the " +sectionName + " module"
    rescue => e
    end
  end

正如您所看到的,我的拖放事件会导致jquery警报。我遇到了与browser.alert.ok一样的问题。所以我只是将它包装在一个额外的开始>>救援区。实际上调用了browser.alert.ok并且关闭了警报并且忽略了随机的随机e为空的错误。

如果有人有实际的解决方案,我很乐意看到它。

答案 2 :(得分:0)

我不确定Watir语法,但以下是处理警报的Java代码。

Alert alert=driver.switchTo().alert();
alert.accept();

答案 3 :(得分:-4)

我们无法回答这个问题,因为问题出在你的javascript代码中(没有附加)。

Selenium::WebDriver::Error::UnknownError: [JavaScript Error: "e is null" {file: "file:///var/folders/f4/rz3xgqkj22zdyldyzrnyx4v40000gn/T/webdriver-profile20140731-47367-tyngix/extensions/fxdriver@googlecode.com/components/command_processor.js" line: 7716}]'

问题出在第7716行的command_processor.js中。