这是我的代码片段:

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();,但是仍然遇到相同的错误。

最佳答案

这是您的问题的解决方案:

我在您的代码中看不到任何此类错误,但我将建议以下内容:


在切换到Alert接受之前,请放慢速度,诱导一些wait
如果您使用的是driver.switchTo().alert().accept(),则无需切换回主机。
当您尝试通过driver.findElement(By.xpath("html/body/div[1]/div")).click();在主页上查找某些元素时,请放慢速度,再次引入一些​​wait
您看到的New connections will no longer be accepted错误是严重的Marionette抱怨,这实际上意味着您正在尝试壁虎驱动程序无法实现的测试步骤。因此,您可能需要更改geckodriver的代码才能继续执行该任务。
最后,您的两个xpath看起来都很脆弱,容易受到我的攻击。而不是使用绝对xpath,您应该尝试使用逻辑唯一的xpath。


让我知道这是否回答了您的问题。

07-24 21:34