Я пытаюсь использовать JavascriptExecutor
для моего кода, который включал передачу в WebElement
и получение некоторой информации от него. Я получал некоторые ошибки, поэтому я упростил это, чтобы найти проблему.
String test = ((JavascriptExecutor)driver).executeScript("return arguments[0];", "macon").toString();
Этот код не будет работать. Это NullPointerException
. Я могу избежать этого, не пытаясь получить доступ к переданной переменной. Кажется, что не важно, что я прохожу; может быть int, string, WebElement
и т.д. и т.д.
Так что же? Я не вижу различий между онлайн-примерами и моим кодом, но, очевидно, что-то. Я использую Firefox WebDriver, а моя версия Selenium - 2.44.0
Вам просто нужно передать результаты в String
:
JavaScriptExecutor js = (JavaScriptExecutor) driver;
String test = (String) js.executeScript("return arguments[0];", "macon");
Кроме того, были проблемы совместимости между selenium 2.44 и Firefox 35/36, которые влияли на выполнение кода javascript:
Попробуйте этот код:
JavaScriptExecutor js = (JavaScriptExecutor) driver;
String example=(String)js.executeScript('return $('table tbodt tr td:eq(0)')') .text();