我正在编写一个自动化任务,将从另一个网站的Gmail获取身份验证代码。
硒有两件事。首先登录该网站,并提示输入验证码,然后打开一个新标签,然后转到Gmail以获取该验证码。
出于某些原因,从Gmail获取代码的不同部分(例如,登录,打开邮件,getText(),注销),有时会返回:
WARNING: WebDriverException thrown by findElement(By.xpath: EnterXpathHere])
问题是它有时只会引发错误。它有大约75%的机会返回异常。对于那25%的任务,它将完成其余任务
我尝试编辑xpath并重写过程以获取该代码,但是无论我尝试使用哪种方法,该异常仍然会返回。
请告诉我是否需要提供其他信息。
答案 0 :(得分:1)
最有可能引入WebDriverWait
将解决您的问题。用法如下:
new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("your xPath"))).click();
这将至少等待10秒钟,直到元素可单击,然后才单击它。
注意: ,您必须进行一些导入:
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
更多信息可以在文档here中找到。