【问题标题】:Selenium Webdriver Java - Create button and push itSelenium Webdriver Java - 创建按钮并按下它
【发布时间】:2016-11-14 04:16:50
【问题描述】:

我正在使用 Selenium Webdriver(Chrome 和 Firefox)和 Java

在做了各种动作后,我遇到了这样的常规源代码:

<input type="button" value="yoyo" class="btn" onClick="SubmitForm(this, 'XYZ','_blank')" >

我需要按下按钮.. 但在按下按钮之前(定期),我需要将“XYZ”更改为“ABC”。有什么办法吗?

或者可能创建一个新按钮表单然后按下它?

甚至以某种方式使用 javascript.. 任何事情都可以。

我找不到有关如何执行此操作的任何信息,我将感谢您的帮助。

【问题讨论】:

  • 通常人们会使用 Selenium 与服务器提供的网页进行交互。您是在问如何在使用 Selenium 的同时操作页面的内容,以便 Selenium 可以对修改后的页面进行操作?
  • 是的......正如我所提到的,当其中一个值不同时,我必须按下一个按钮。我知道这不是该工具的目标,但如果它能够做到这一点,它将对我有很大帮助。

标签: javascript java selenium selenium-webdriver


【解决方案1】:

您可以在运行时自动化期间更改它,然后使用click JavascriptExecutor 如下:-

WebElement el = driver.findElement(By.className("btn"))

((JavascriptExecutor) driver).executeScript("arguments[0].setAttribute('onClick', arguments[1]);arguments[0].click();", el, "SubmitForm(this, 'ABC','_blank')");

注意:- 这不会作为永久解决方案。此效果将在页面上起作用,直到页面不刷新为止。

希望它会起作用..:)

【讨论】:

    【解决方案2】:

    您需要使用此处描述的 JavascriptExecutor:https://stackoverflow.com/a/8476765/62462

    WebDriver driver; // Assigned elsewhere
    JavascriptExecutor js = (JavascriptExecutor) driver;
    js.executeScript("document.getElementById('//id of element').setAttribute('onClick', 'SubmitForm(this, \'ABC\',\'_blank\')')");
    

    如果输入元素没有 id,您可能需要通过 XPath 查找它。

    【讨论】:

      猜你喜欢
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 2016-01-30
      • 1970-01-01
      • 1970-01-01
      • 2015-04-25
      • 1970-01-01
      • 2021-11-09
      相关资源
      最近更新 更多