JavascriptExecutor в Selenium Webdriver Java - PullRequest
       1

JavascriptExecutor в Selenium Webdriver Java

0 голосов
/ 26 сентября 2019

Просто хотел задать простой вопрос.Я немного узнаю о тестировании и снова у меня возникла небольшая проблема.

В моем коде я хочу вызвать метод, который будет использовать JavascriptExecutor.

Я пишу:

JavascriptExecutor js = (JavascriptExecutor)driver 

И после этого я использую его в методе:

public void clickSearch()
{ js.executeScript("arguments[0].click()", sOmEtHiNg);}

Но потом, когда я запускаю свой код, я получаю: Null Pointer Exception.

Но ... когда япросто используйте JavascriptExecutor в моем методе. Например:

public void clickSearch()
{ ((JavascriptExecutor)driver).executeScript("arguments[0].click()",eight); }

Тогда все в порядке, и я не получаю ошибок.

Кто-то может подсказать, где я допускаю ошибку, которая вызывает исключение Null Pointer Exception?

Большое спасибо: -)

Ответы [ 2 ]

2 голосов
/ 26 сентября 2019
public void clickSearch()
{ js.executeScript("arguments[0].click()", sOmEtHiNg);}

Похоже, js может быть здесь нулевым, что приведет к исключению.Мы должны убедиться, что js находится внутри области действия вашего clickSearch() метода.Не могли бы вы попробовать это вместо:

public void clickSearch()
{
    JavascriptExecutor js = (JavascriptExecutor)driver 
    js.executeScript("arguments[0].click()", sOmEtHiNg);
}

Или, возможно:

JavascriptExecutor js = (JavascriptExecutor)driver;
clickSearch(js);

public void clickSearch(JavascriptExecutor js)
{
    js.executeScript("arguments[0].click()", sOmEtHiNg);
}
0 голосов
/ 26 сентября 2019
public void clickSearch()
{
    JavascriptExecutor js = (JavascriptExecutor)driver 
    js.executeScript("arguments[0].click()", sOmEtHiNg);
}

Этот работает.Второй нельзя использовать из-за разных классов.Я пишу это на одном и бегу на другом :-) Еще раз большое спасибо: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...