java - 等待使用 Java 在 selenium webdriver 中手动单击登录按钮

标签 java javascript selenium

Selenium Webdriver 中是否可以使用 webdriver.wait 暂停代码执行,直到用户单击表单的登录按钮? 该表单包含用户必须手动填写的验证码,因此我无法使用脚本自动单击该按钮。 单击登录按钮会以 boolean 值的形式返回 JavaScript 函数的值,即 true 或 false。

这个问题有什么可能的解决方案吗?

最佳答案

编辑:获取更多信息后全新的响应。

使用下面的代码,会发生以下情况:

  1. Selenium 输入用户数据
  2. 然后我手动刷新页面(因为我没有登录数据可供测试)
  3. 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/

相关文章:

javascript - 如何使用 _ 和 | 从 javascript 制作数字形状?

javascript - 给定这个脚本,我怎样才能把子菜单放在主菜单的左边?

地址栏中的 Javascript - 这是恶意的吗?

java - Spring Security with Rest API with React

java - actionResponse.sendRedirect(url) 不起作用

java - 使用 LibGdx 在 Java 中出现奇怪的 CPU 使用率

java - 为什么这个简单的代码不起作用

当功能跨越 Step 类时,使用 spring 依赖注入(inject)的 Java-Cucumber 测试会抛出 NullPointerException

java - 如何简化 testng XML 文件中的参数传递?

ruby - 使用 rspec、ruby 和 capybara 获取 webelement 的背景颜色