切换WebDriver后警告Marionette停止工作

时间:2017-05-14 23:22:50

标签: java selenium selenium-webdriver marionette

以下是我的代码片段:

public void deleteOffer(){
        driver.findElement(By.xpath("html/body/main/div/div/div/div[2]/a[2]")).click();
        driver.switchTo().alert().accept();
        driver.findElement(By.xpath("html/body/div[1]/div")).click();
    }

我收到此错误:1494803297020 Marionette INFO New connections will no longer be accepted

似乎它正在driver.switchTo().alert().accept();之后停止工作所以我猜我的原因是我应该切换回主框架,但我不知道该怎么做。我尝试过driver.switchTo().parentFrame();driver.switchTo().defaultContent();,但仍然遇到同样的错误。

1 个答案:

答案 0 :(得分:1)

以下是您的问题的解决方案:

我的代码中没有看到任何错误,但我会建议如下:

  1. 在您切换到Alert接受之前,请慢一点,诱导一些wait
  2. 如果您使用driver.switchTo().alert().accept(),则无需切换回主框架。
  3. 当你试图通过driver.findElement(By.xpath("html/body/div[1]/div")).click();在主页上找到一些元素时,请慢一点,再次引发一些wait
  4. 您看到的错误New connections will no longer be accepted是一个严重的Marionette抱怨的内容,这实际上意味着您正在尝试通过geckodriver无法实现的测试步骤。因此,您可能需要更改geckodriver的代码以继续执行任务。
  5. 最后,你的两个xpath看起来都很脆弱。您应该尝试使用逻辑唯一的xpath,而不是使用绝对xpath。
  6. 如果这回答你的问题,请告诉我。