6

我正在尝试学习 selenium webdriver 自动化,但我发现 sendKeys 命令没有在密码类型字段上输入。我可以通过谷歌搜索看到其他一些人也遇到了同样的问题,但我还没有看到任何正确的答案。任何人都可以在这里帮助我。

请在下面找到示例代码;我从 Selenium IDE 生成了代码,它在 IDE 上运行良好,但在我使用 webdriver 时却不行。

package com.example.tests;

public class Login {
  private WebDriver driver;
  private String baseUrl;
  private boolean acceptNextAlert = true;
  private StringBuffer verificationErrors = new StringBuffer();

  @Before
  public void setUp() throws Exception {
    driver = new FirefoxDriver();
    baseUrl = "http://www.webs.com/";
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
  }

  @Test
  public void testLogin() throws Exception {
    driver.get(baseUrl + "/");
    driver.findElement(By.cssSelector("span")).click();
    driver.findElement(By.id("FWloginUsername")).clear();
    driver.findElement(By.id("FWloginUsername")).sendKeys("aug2qatestingqa@yahoo.com");
    driver.findElement(By.id("FWloginPassword2")).clear();
    driver.findElement(By.id("FWloginPassword2")).sendKeys("webs");
    driver.findElement(By.id("sign_in_leaf")).click();

  }
4

4 回答 4

0

有两个密码字段,一个是隐藏的。解决方案是单击第一个密码 [隐藏] 字段以启用第二个密码字段。

driver.findElement(By.id("FWloginUsername")).sendKeys("aug2qatestingqa@yahoo.com");
driver.findElement(By.id("FWloginPassword")).click();
driver.findElement(By.id("FWloginPassword2")).clear();
driver.findElement(By.id("FWloginPassword2")).sendKeys("webs");
于 2013-08-06T20:13:14.700 回答
0

我对密码字段几乎有类似的情况。相同的“密码”字段有两个元素,但 ID 不同。JavaScript 在运行时切换“type = password”,以便单击、清除或对此字段执行任何操作。

在这种情况下,解决方案是使用 input 查找文本type = password

例如:

driver.FindElement(By.CssSelector("input[type='password']")).SendKeys(IWebElement);
于 2016-07-04T08:15:27.877 回答
0

我的问题是我使用ActionChains了 send_keys 方法导致后面的字段没有被填充。

解决方案是致电actions.reset_actions()

例如

actions = ActionChains(driver)
actions.key_down(Keys.LEFT_CONTROL).send_keys("a").perform()
actions.key_down(Keys.LEFT_CONTROL).send_keys("c").perform()
actions.reset_actions()

# now send_keys() method works again
于 2019-10-05T12:15:29.643 回答
-3
cvvTxtBox().sendKeys("1234"); 
cvvTxtBox().sendKeys(Keys.TAB);

这个问题的最终解决方案。
其他使用机器人

于 2017-09-19T10:18:14.957 回答