【问题标题】:Execute a javascript function from a file Selenium WebDriver Java从文件 Selenium WebDriver Java 执行 javascript 函数
【发布时间】:2023-12-22 21:36:01
【问题描述】:

我正在使用 IE 浏览器驱动程序测试一个页面,并且在单击按钮时会调用一个 JavaScript 函数。 该函数位于我在 DOM 中看到的名为“app.js”的文件中。 我试过了:

private static JavascriptExecutor jsExec;
jsExec.executeScript("myFunction();");

但这总是返回错误。

“app.js”的属性指向:myhtml/app.js

如何执行这个功能?

谢谢

【问题讨论】:

  • 从浏览器控制台调用 myFunction() 会发生什么?
  • 嗨 Linh,如果我只是尝试单独运行 myFunction(),它会返回为“未定义”,但如果我运行 'h t t p s://myhtml/app.js/myFuntion() 那么它运行
  • 我猜你提到你在 DOM 中看到的文件 app.js 的路径不正确。也许您可以粘贴调用文件 app.js 的 DOM?
  • 抱歉耽搁了这么久,我们上周放假了。关于你的 js 函数,我怀疑文件的路径/目录。而且我可以确定这不是 Selenium 问题。一旦您可以在控制台中运行该函数,它将在 Selenium 中运行。我不能确切地说它是哪个问题,但也许你可以检查 js 文件的路径?顺便说一句,页面网址是什么?

标签: javascript java selenium


【解决方案1】:

你可以这样调用javascript函数-

 JavascriptExecutor js =(JavascriptExecutor)driver;
 js.executeScript("myFunction();");

【讨论】:

  • 嗨 Nerandra,JavascripExecutor 运行良好,只是该函数没有执行。我相信这是由于不在实际的 html 中,而是在单独的 .js 文件中。