如何使用JavaScript执行器获取网页标题

时间:2018-01-02 10:52:29

标签: selenium automated-tests junit4

我是自动化测试的新宠儿。在我的代码中,我在我的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。

3 个答案:

答案 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();