[英]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.