当前位置: 首页 > 面试题库 >

如何在Selenium WebDriver Java中使用JavaScript

闻人修明
2023-03-14
问题内容

我想使用Java将JavaScript与WebDriver(Selenium 2)一起使用。

我遵循了一些指南,第一行有一条指令以如下方式运行:

$ ./go webdriverjs

我的问题:上述命令将从哪个文件夹/位置运行/执行?


问题答案:

基于您先前的问题,我想您想从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 WebElement
WebElement 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 buttons
js.executeScript(
        "var inputs = document.getElementsByTagName('input');" +
        "for(var i = 0; i < inputs.length; i++) { " +
        "    inputs[i].type = 'radio';" +
        "}" );


 类似资料:
  • 问题内容: 我有一些绝对必须使用实现的代码。例如,我要编写这样的程序: 有没有办法用Javascript做到这一点? 问题答案: 绝对!有一个名为Summer of Goto的项目,它使您可以最大程度地使用JavaScript,并将彻底改变您编写代码的方式。 这个JavaScript预处理工具可让您创建标签,然后使用以下语法转到标签: 例如,问题中的示例可以编写如下: 请注意,您不仅限于无穷无尽的

  • 问题内容: 我想开发一个小型产品,希望提供一种功能,使用户可以编写脚本语言的JavaScript。 而且还可以通过JavaScript构建对象并在其上调用方法。 有什么框架吗? 问题答案: Rhino 是您想要的。 Rhino是完全用Java编写的JavaScript的开源实现。通常将其嵌入Java应用程序中,以向最终用户提供脚本。 更新:现在,jdk8提供了Nashorn,它是Java性能更好的

  • 问题内容: 我想使用Android Studio使用Gradle构建工具开发应用程序。我无法在上插入存储库和库。我的文件如下: 如何在项目中添加OpenCV? 问题答案: 您可以在Android Studio中轻松完成此操作。 请按照以下步骤将Open CV作为库添加到您的项目中。 libraries在项目主目录下创建一个文件夹。例如,如果您的项目是OpenCVExamples,则将创建一个Ope

  • 我想使用Android Studio开发一个应用程序使用Gradle构建工具。我无法在上插入OpenCV repo和库。我的文件如下所示: 我如何在我的项目中添加OpenCV?

  • 我想将一个元素返回到链中的第一个元素,只要我有一个像这样的代码 然后我想激活一个叫active的类,只有在第一个元素和其他元素中将没有叫active的类,下面的元素将向上移动以替换第一个元素,而第一个元素将返回链中。 这段使用jQuery的代码如下所示 null null 这是我在寻找解决方案时生成的代码 null null

  • 问题内容: 我想对英语句子加标签,并进行一些处理。我想使用openNLP。我已经安装了 当我执行命令时 它提供输出POSTagging Text.txt中的输入 我希望它安装正确吗? 现在如何从Java应用程序内部进行此POStagging?我已将openNLPtools,jwnl,maxent jar添加到项目中,但是如何调用POStagging? 问题答案: 这是我放在一起的一些(旧)示例代码

  • 问题内容: 我必须在GWT入口点使用java.util.Calendar,但是在运行应用程序时出现错误,这是因为GWT无法找到源代码,无论如何我都可以解决此问题。 提前致谢!!! 问题答案: java.util.Calendar不是模拟的类。您可以在此处找到仿真类的列表: http://code.google.com/webtoolkit/doc/latest/RefJreEmulation.ht

  • 问题内容: 我正在尝试使用Java中的HtmlUnit登录网站。首先,我输入用户名,然后输入密码。之后,我需要从下拉框中选择一个选项。输入用户名和密码似乎有效,但是当我尝试从下拉框中选择项目时出现错误。谁能帮我解决这个问题?我的代码如下: 问题答案: 这是HTMLunit的单元测试中的代码。 请注意,他们使用的是getSelectsByName而不是getElementById。 这是这些单元测试