【发布时间】:2015-06-12 17:40:51
【问题描述】:
我正在编写一个简单的程序来测试 gmail 的功能,其中包括发送电子邮件。
我让程序发送一封电子邮件,一旦确认已发送,它就会注销。
我不想在消息发送时退出,只有在消息发送完成时才退出。
因此,如果您有 gmail,并且当您发送消息时,您会在收件箱上方看到一条小通知,上面写着“您的消息已发送。查看消息。”
为此的 cssSelector 是 div.vh。
所以我希望我的程序等到弹出该窗口后再注销。
但有时由于互联网速度,它会在消息出现之前注销。
这是我的代码:
WebElement element = (new WebDriverWait(driver,10)).until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("div.vh")));
【问题讨论】:
-
为什么不等待超过 10 秒?
-
像使用 Thread.sleep(10000); 那样强制等待确实不是最佳选择;我应该只等待需要的时间。
-
我认为@satnam 的意思是您在
WebDriverWait中使用了10 秒的默认超时,如果发送消息需要更多时间,那么它将在10 秒后停止等待。那么为什么不使用更长的默认超时时间呢? -
发送该消息的时间确实不会超过 10 秒,但我会尝试您的建议并执行 100 秒之类的操作,
标签: java selenium selenium-webdriver automation webdriver