我是自动化测试的新宠儿。在我的代码中,我在我的Selenium自动化测试脚本上使用JavaScript(使用JUnit)。我想找到当前的窗口标题:
driver = new ChromeDriver();
js = (JavaScriptExecutor)driver;
driver.get(//passed url);
//after the log in my Org. I execute the command below
//to get the title of the current window I execute the below command
js.executeScript("document.getElementsByTagName('title').innerHTML;");
但是上面的命令将以 null 瞬间返回答案 得到窗口的标题。所以有人知道什么是错的 我的命令?
但是我在页面的控制台日志上执行窗口的标题。所以我不知道我的代码有什么问题。
感谢。
Mohan Raj S。
答案 0 :(得分:1)
您也可以这样做
function titleCheck() {
promise = driver.getTitle();
promise.then(function(title) {
console.log("The title is: " + title);
});
}
参考:https://blog.testproject.io/2018/03/08/selenium-javascript-best-practices/
尽管他们的var测试资料对我不起作用,但我不得不将其删除。
答案 1 :(得分:0)
更改以下行:
document.getElementsByTagName('title').innerHTML
为:
return document.getElementsByTagName(' title')[0] .innerHTML
代码中的将是:
js.executeScript("return document.getElementsByTagName('title')[0].innerHTML;");
getElementsByTagName返回元素数组。所以我们需要传递索引值。
Web驱动程序界面提供了get title方法。这很简单。
String title=driver.getTitle();
System.out.println("Title is" + title);
答案 2 :(得分:0)
JavascriptExecutor js = (JavascriptExecutor)driver;
String text = js.executeScript("return document.title;").toString();