Selenium Webdriver 中是否可以使用 webdriver.wait
暂停代码执行,直到用户单击表单的登录按钮?
该表单包含用户必须手动填写的验证码,因此我无法使用脚本自动单击该按钮。
单击登录按钮会以 boolean 值的形式返回 JavaScript 函数的值,即 true 或 false。
这个问题有什么可能的解决方案吗?
最佳答案
编辑:获取更多信息后全新的响应。
使用下面的代码,会发生以下情况:
- Selenium 输入用户数据
- 然后我手动刷新页面(因为我没有登录数据可供测试)
- Selenium 再次输入用户数据
(变量 W 是之前定义的 WebDriverWait
。)
driver.Navigate().GoToUrl("https://www.irctc.co.in/eticketing/loginHome.jsf");
// will try looping as long as you're on the relevant page
do
{
try
{
IWebElement username = w.Until(ExpectedConditions.ElementIsVisible(By.Id("usernameId")));
IWebElement password = driver.FindElement(By.Name("j_password"));
if (String.IsNullOrEmpty(username.GetAttribute("value")))
{
username.SendKeys("a");
password.SendKeys("b");
}
}
catch (Exception)
{
// page is reloading, just wait another round
}
} while (!String.Equals(driver.Url, "put url after login here"));
关于java - 等待使用 Java 在 selenium webdriver 中手动单击登录按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29374066/