Selenium Webdriver Java - 创建按钮并推送它

时间:2016-07-12 04:36:51

标签: javascript java selenium selenium-webdriver

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

在做了所有类型的操作后,我遇到了这样的常规源代码:

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

我需要按下按钮..但在按下按钮(定期)之前,我需要更改&#34; XYZ&#34;到&#34; ABC&#34;。有没有办法做到这一点?

或者可以创建新按钮表单,然后推送它?

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

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

2 个答案:

答案 0 :(得分:1)

您需要使用此处所述的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找到输入元素。

答案 1 :(得分: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')");

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

希望它能起作用.. :)