【问题标题】:why do I have to click twice to a submit input using selenium为什么我必须单击两次才能使用 selenium 提交输入
【发布时间】:2014-02-15 08:12:47
【问题描述】:

环境

chrome 32 webdriver2.8

我正在使用 selenium(java) 单击提交输入。但是我需要点击两次才能激活提交操作。

输入代码:

<input type="submit" disabled="disabled" id="id_submit" name="submit" class="btn-txt" value="OK">

不工作硒代码:

if(submitButton.isEnabled()) {
    new Actions(driver).moveToElement(submitButton).perform();
    submitButton.click(); // this sentence is executed.
}

有效

submitButton.click();
submitButton.click();

嗯,第一次点击函数似乎使按钮获得焦点,第二次点击函数主动提交操作。当我首先使用 moveToElement 聚焦按钮时,单击也不起作用。我可以确保按钮已启用。我想使用 selenium 单击按钮,我不想单击两次。我该怎么办?有任何想法吗?谢谢。

编辑

都可以使用

JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript("document.getElementById('id_submit').focus();");
jse.executeScript("document.getElementById('id_submit').click();");

更新

假设我想输入一个字符串,比如“abcdef123456”。然后执行 send_keys。看起来像 并启用提交按钮。第一次点击提交按钮后。它看起来像 并提交按钮获得焦点。第二次点击提交按钮后,表单被提交,页面被重定向。我对第一次点击感到困惑。

【问题讨论】:

  • 看看 html...disabled='disabled' 你不能(也不应该)点击无法交互的东西。
  • new Actions(driver).moveToElement(submitButton).perform(); submitButton.click(); 被执行。所以应该启用它。
  • 点击两次是硒的bug还是硒的解决方案?

标签: google-chrome testing selenium selenium-webdriver automated-tests


【解决方案1】:

你试过Expected Conditions类吗,

new WebDriverWait(driver,30).until(ExpectedConditions.elementToBeClickable(By.id("id_submit"))).click();

【讨论】:

  • 好吧,JavascriptExecutor jse = (JavascriptExecutor) driver; jse.executeScript("document.getElementById('J_submit').focus();"); jse.executeScript("document.getElementById('J_submit').click();"); 适合我。我不知道为什么。
【解决方案2】:

它可以像这样解决: driver.sendkeys("abc1234"); (在文本框中输入)

//显式等待 WebDriverWait w = new WebDriverWait(driver, 10);

w.until(ExpectedConditions.elementToBeClickable(By.id("Button"))); 要么 w.until(ExpectedConditions.visibilityOf((WebElement) By.id("Button")));

driver.findElement(By.id("Button")).click();

【讨论】:

  • 我确实等了elementToBeClickable 30 秒,这对我不起作用。它是可见的。所以不用等待visibility
猜你喜欢
  • 2015-07-02
  • 1970-01-01
  • 2022-07-06
  • 2021-12-30
  • 2021-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多