2016-06-04 4 views
0

Я пытаюсь нажать кнопку на странице html с помощью веб-драйвера Python и селена.Попытка нажать кнопку в Python с помощью Selenium Web Driver

Это исходный код страницы http://pastebin.com/112g1Gje.

EDIT: Соответствующая часть на это в конце .. «БТН БТН-первичный»

Я очень близко к разгадке это: Имя класса имели места в нем, и я заменил пространства с точками ..., которые заставили его работать (благодаря другому сообщению SO).

driver.find_element_by_css_selector(".btn.btn-primary").click() 

Теперь ошибка, я получаю:

selenium.common.exceptions.ElementNotVisibleException: Message: Element is not currently visible and so may not be interacted with 

Так что я пытаюсь что-то вроде:

driver.execute_script('document.querySelector("btn.btn-primary").click()') 

Из моего понимания я должен написать JavaScript, который нажимает на кнопку, а не потому, что элемент не отображается. Но это не работает.

Я получаю ошибку почти нечитаемый:

driver.execute_script('document.querySelector("btn.btn-primary").click()') 
    File "/Users/Richie/anaconda/lib/python3.5/site-  packages/selenium/webdriver/remote/webdriver.py", line 461, in execute_script 
    {'script': script, 'args':converted_args})['value'] 
    File "/Users/Richie/anaconda/lib/python3.5/site-  packages/selenium/webdriver/remote/webdriver.py", line 233, in execute 
    self.error_handler.check_response(response) 
    File "/Users/Richie/anaconda/lib/python3.5/site- packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response 
    raise exception_class(message, screen, stacktrace) 
selenium.common.exceptions.WebDriverException: Message: document.querySelector(...) is null 

Кто-нибудь знает?

+0

Ничего себе, этот HTML-источник ДЕЙСТВИТЕЛЬНО трудно читать. Вы могли бы облегчить нам показывать только html для соответствующего элемента, который вы хотите щелкнуть. Кроме того, проверьте, есть ли несколько элементов, которые возвращаются в соответствии с селектором css. Я вижу по крайней мере два из них. У одного есть id, который лучше использовать. селектор css для этого будет «кнопка # button-send-feedback» –

+0

Упс! Да, я знаю человека! Это орехи! Это все в конце. CTRL + F "btn btn-primary" – ThatProgrammerDude

+0

Это также первая кнопка, это кнопка обратной связи. Я пытаюсь нажать кнопку сообщения. – ThatProgrammerDude

ответ

1
driver.find_element_by_css_selector(".btn.btn-lg.btn-block.btn-message.open-write-message").click() 

Я нажал не ту вещь. Обязательно включите точки.

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

  • Нет связанных вопросов^_^