2014-02-20 2 views
0
public class A{ 
    WebDriver driver; 
    JavascriptExecutor js = (JavascriptExecutor) driver; 

    @Test 
    js.executeScript("alert('hello world');"); 
     } 

не работает; тогда какJavascriptExecutor работает в одном направлении, но не в другом

public class A{ 
    WebDriver driver; 
    @Test 
    JavascriptExecutor js = (JavascriptExecutor) driver;  
    js.executeScript("alert('hello world');"); 
    } 

работает отлично. Я не могу понять почему?

+0

Как и в частности значение не присваивается #display Ssn. По сути, я тестирую текстовое поле на веб-странице, используя веб-драйвер selenium, который получает значение через переменную java-script. Я пытался назначить целочисленное значение этой переменной, используя указанную выше команду. И, к моему удивлению, я не могу присвоить значение #DisplaySsn через первый фрагмент кода, тогда как другой работает, который по мне так же, как и первый. – avi

+0

Другими словами, javascript в первом блоке не делает того, что от него ожидается, но я могу достичь цели, используя тот, что есть во втором блоке. Теперь это меня удивляет, так как я думаю, что коды в обоих блоках должны иметь одинаковое значение. – avi

ответ

1

Предполагая, что это код, который у вас есть, первый пример не будет работать, потому что вы должны назначить null JavascriptExecutor, потому что вы не создали экземпляр драйвера в момент, когда вы создали экземпляр исполнителя. Во втором примере я предполагаю, что вы сделали это в некотором методе настройки.

Это может быть просто потому, что ваш код, чтобы проиллюстрировать ваш пример является неправильным, хотя ...

+0

Спасибо, ты прав! – avi

Смежные вопросы