【问题标题】:Executing the page's JavaScript from Selenium WebDriver从 Selenium WebDriver 执行页面的 JavaScript
【发布时间】:2014-06-26 08:24:17
【问题描述】:

我正在为一个网站编写一个自动测试,并且我正在尝试运行该网站中存在的一个函数。
当我打开开发者工具时,我可以在页面的 JavaScript 中看到我试图运行的函数,当我从我的代码中运行 alert('hello world') 时,我可以在测试页面中看到它。
我的代码是:

WebDriver driver = getDriver();
JavascriptExecutor js = (JavascriptExecutor) driver;
String retval = (String) js.executeScript("return theFunction()");

我做错了什么?

【问题讨论】:

  • 不返回是否有效?
  • 不,它说函数没有定义。

标签: java javascript gwt selenium selenium-webdriver


【解决方案1】:

我使用的是 GWT,在您使用该函数之前,您需要按照“使用 GWT 创建 JavaScript 库”部分下的 this link 中所述显示该函数

您基本上需要按如下方式“发布”该功能:
$wnd.publishedFuncName = @pakage.class::realfuctionName(D);
D 代表作为输入参数的双精度,可以找到如何引用变量的更完整列表here 之后,您可以像从控制台运行它一样运行该函数,不需要window.fuction

另外,我必须将retval 的类型更改为Object,然后使用toString 函数。

【讨论】:

    猜你喜欢
    • 2019-06-14
    • 2015-09-04
    • 1970-01-01
    • 2016-06-14
    • 1970-01-01
    • 2016-01-17
    • 2020-05-24
    • 1970-01-01
    相关资源
    最近更新 更多