如何在Selenium WebDriver Java中使用JavaScript

如何在Selenium WebDriver Java中使用JavaScript,第1张

如何在Selenium WebDriver Java中使用JavaScript

基于您先前的问题,我想您想从Java的Java运行Javascript代码段

WebDriver
。如果我错了,请纠正我。

WebDriverJs
实际上是“公正”另一
WebDriver
语言绑定(您可以用Java编写,C#,红宝石,Python和JS甚至可能更多的语言,截至目前你的测试)。特别是Javascript,它使您可以用Javascript编写测试。

如果要在Java中运行Javascript代码

WebDriver
,请执行以下 *** 作:

WebDriver driver = new AnyDriverYouWant();if (driver instanceof JavascriptExecutor) {    ((JavascriptExecutor)driver).executescript("yourscript();");} else {    throw new IllegalStateException("This driver does not support Javascript!");}

我也喜欢这样做:

WebDriver driver = new AnyDriverYouWant();JavascriptExecutor js;if (driver instanceof JavascriptExecutor) {    js = (JavascriptExecutor)driver;} // else throw...// later on...js.executescript("return document.getElementById('someId');");

您可以在文档中,或者最好在的JavaDocs中

JavascriptExecutor
找到与此有关的更多文档。

executescript()
需要函数调用和原材料JS了。您可以从中获得
return
一个值,并且可以向其传递许多复杂的参数,例如一些随机示例:

// returns the right WebElement// it's the same as driver.findElement(By.id("someId"))js.executescript("return document.getElementById('someId');");
// draws a border around WebElementWebElement element = driver.findElement(By.anything("tada"));js.executescript("arguments[0].style.border='3px solid red'", element);
// changes all input elements on the page to radio buttonsjs.executescript(        "var inputs = document.getElementsByTagName('input');" +        "for(var i = 0; i < inputs.length; i++) { " +        "    inputs[i].type = 'radio';" +        "}" );


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5440107.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-11
下一篇2022-12-11

发表评论

登录后才能评论

评论列表(0条)

    保存