Я новичок в тестировании автоматизации. В моем коде я использую JavaScript в моем сценарии тестирования автоматизации Selenium (при использовании 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;"); 

Но приведенная выше команда вернет ответ как нулевой момент времени получение заголовка окна. Так кто-нибудь знает, что не так с моя команда?

Но я получаю заголовок окна при выполнении в консольном журнале страницы. Так что я не знаю, что не так с моим кодом.

Спасибо.

Мохан Радж С.

0
MohanRaj 2 Янв 2018 в 13:52

2 ответа

Лучший ответ

Измените следующую строку:

document.getElementsByTagName('title').innerHTML

Чтобы :

Return document.getElementsByTagName ('название') [0] .innerHTML

В коде это будет:

js.executeScript("return document.getElementsByTagName('title')[0].innerHTML;"); 

GetElementsByTagName возвращает массив элементов. Итак, нам нужно передать значение индекса.

Интерфейс веб-драйвера предоставляет метод получения заголовка. Все очень просто.

String title=driver.getTitle();
System.out.println("Title is" + title);
1
Ratmir Asanov 2 Янв 2018 в 12:43

Вы могли бы сделать это и так

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-practice /

Хотя их тестовый материал var не работает для меня, мне пришлось его удалить.

1
Mike 11 Окт 2018 в 21:07