Selenium Remote Webdriver на локальном хосте Windows7 выдает исключение нулевого указателя

Я успешно использую RC на протяжении многих лет. Я решил перейти на Remote Webdriver, чтобы получить все эти новые преимущества. Сначала я хотел попробовать базовый сценарий. 1. Откройте Google.com 2. Введите «Selenium» в поле поиска.

Я запускаю автономный сервер с помощью следующей команды

java -jar selenium-server-standalone-2.31.0.jar -port 4450

Затем я запускаю свой тестовый скрипт Python, который содержит следующие строки.

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
import time
caps = webdriver.DesiredCapabilities.FIREFOX
driver = webdriver.Remote(desired_capabilities=caps,command_executor='http://localhost:4450/wd/hub')
driver.get("http://www.google.com")
time.sleep(5)
driver.find_element_by_id("gbqfb").send_keys("selenium")
driver.quit()

Я вижу, что google.com открывается, но "selenium" не вводится в поле поиска. В журналах автономного сервера я получаю исключение ниже.

Конфигурация: Windows 7 Professional-32bit. Selenium-server-standalone-2.31 Python 2.7.3 Firefox 17.

Мне интересно, что мне здесь не хватает? Любая помощь будет оценена. Спасибо!

C:\Users\engin\Downloads>java -jar selenium-server-standalone-2.31.0.jar -port 4
450
Nis 04, 2013 11:24:35 AM org.openqa.grid.selenium.GridLauncher main
INFO: Launching a standalone server
11:24:36.180 INFO - Java: Oracle Corporation 23.7-b01
11:24:36.180 INFO - OS: Windows 7 6.1 x86
11:24:36.195 INFO - v2.31.0, with Core v2.31.0. Built from revision 1bd294d
11:24:36.351 INFO - RemoteWebDriver instances should connect to: http://127.0.0.
1:4450/wd/hub
11:24:36.367 INFO - Version Jetty/5.1.x
11:24:36.367 INFO - Started HttpContext[/selenium-server/driver,/selenium-server
/driver]
11:24:36.367 INFO - Started HttpContext[/selenium-server,/selenium-server]
11:24:36.367 INFO - Started HttpContext[/,/]
11:24:36.398 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@b1656f

11:24:36.398 INFO - Started HttpContext[/wd,/wd]
11:24:36.398 INFO - Started SocketListener on 0.0.0.0:4450
11:24:36.398 INFO - Started org.openqa.jetty.jetty.Server@18facfb
11:25:42.012 INFO - Executing: [new session: {platform=ANY, javascriptEnabled=tr
ue, browserName=firefox, version=}] at URL: /session)
11:25:48.987 INFO - Done: /session
11:25:49.003 INFO - Executing: org.openqa.selenium.remote.server.handler.GetSess
ionCapabilities@19e774d at URL: /session/3ff2660f-0a08-420d-b3df-eb5b699e4a6b)
11:25:49.003 INFO - Done: /session/3ff2660f-0a08-420d-b3df-eb5b699e4a6b
11:25:49.018 INFO - Executing: [get: http://www.google.com] at URL: /session/3ff
2660f-0a08-420d-b3df-eb5b699e4a6b/url)
11:25:51.436 INFO - Done: /session/3ff2660f-0a08-420d-b3df-eb5b699e4a6b/url
11:25:56.444 INFO - Executing: [find element: By.id: gbqfb] at URL: /session/3ff
2660f-0a08-420d-b3df-eb5b699e4a6b/element)
11:25:56.537 INFO - Done: /session/3ff2660f-0a08-420d-b3df-eb5b699e4a6b/element
11:25:56.537 INFO - Executing: [send keys: null null, [s, e, l, e, n, i, u, m]]
at URL: /session/3ff2660f-0a08-420d-b3df-eb5b699e4a6b/element/0/value)
11:25:56.537 WARN - Exception thrown
java.lang.NullPointerException
        at org.openqa.selenium.remote.server.handler.SendKeys.call(SendKeys.java
:49)
        at org.openqa.selenium.remote.server.handler.SendKeys.call(SendKeys.java
:1)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession
.java:169)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
    11:25:56.553 WARN - Exception: null

person Yavuz Dökmetaş    schedule 04.04.2013    source источник
comment
Вы уверены, что локатор gbqfb предназначен для ввода текста, а не для любого другого элемента?   -  person Abhijeet Vaikar    schedule 04.04.2013
comment
Я уверен, что локатор правильный, потому что, если я преднамеренно укажу неверный локатор, я получаю NoSuchelementException : Unable to find the element   -  person Yavuz Dökmetaş    schedule 04.04.2013
comment
Смотрите эту строку: 11:25:56.537 INFO - Executing: [send keys: null null, [s, e, l, e, n, i, u, m]] - кажется, что первые два ключа нулевые... но я понятия не имею, как это исправить...   -  person Pavel Janicek    schedule 04.04.2013
comment
@AbhijeetVaikar также правильный тип элемента. Я только что попробовал это с функцией поиска Selenium IDE (id = gbqfq). Он выделяет окно поиска желтым цветом. С этим идентификатором я все еще получаю исключение нулевого указателя. Также попробовал открыть www.altavista.com и ввести какой-то текст в поле поиска (id=yschsp) ..без разницы..   -  person Yavuz Dökmetaş    schedule 04.04.2013


Ответы (2)


Одно решение, которое мы нашли, было... Добавление -Duser.language=en к аргументам java при запуске сервера решило проблему!! и, кстати, мой язык ОС - турецкий (TR).

person Yavuz Dökmetaş    schedule 18.04.2013

У меня была действительно похожая проблема раньше, и я нашел это:

https://github.com/mozilla/geckodriver/issues/659

Похоже, что метод send_keys не работает. Они должны были уже исправить это, чтобы вы могли получить самую новую версию и собрать ее самостоятельно, или вы можете использовать более старую версию, где работает метод send_keys.

Это сработало для меня.

person Community    schedule 13.07.2017