繁体   English   中英

在硒javascript执行器中使用javascript

[英]using javascript in selenium javascript executor

我想验证我的要求文字是否出现在页面上。 我不能使用硒webdriver的gettext()方法作为其抛出权限异常。 所以我正在使用JavaScript来比较文本。

 String scriptToExec = "var result = document.getElementsByClassName('Sender');
    for(var element in result){
    if (element.text.contains('mytext'))
    {return true;}
    else
    {return false;}}";          

    JavascriptExecutor js = (JavascriptExecutor) driver;
    Boolean result = (Boolean) (js.executeScript(scriptToExec));

我收到此异常:org.openqa.selenium.remote。

ErrorHandler $ UnknownServerException:element.text未定义

这里有许多JavaScript问题,以及对选择器的严重缺乏了解。 contains不是标准的一部分,并且不适用于较旧的浏览器:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/contains

如果由于任何原因未定义element.text则需要解决:

if (element && element.text && element.text.contains('mytext'))

(这意味着,如果“ element”是某物,而element.text是某物 ,并且element.text包含“ mytext”)

另外,我可以看到您基本上是在尝试对某些文本进行包含搜索-您绝对不需要JavaScript 可以使用XPath选择器来完成!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM