这是我的代码片段:
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。
让我知道这是否回答了您的问题。