Кнопка не читается в Selenium Python (веб-драйвер chrome, protonmail) - PullRequest
0 голосов
/ 05 сентября 2018

Я учусь использовать селен с python2 и создаю программу для входа и составления сообщения с использованием protonmail.

Все работает гладко, пока не достигнет линии с боковой панелью. Я проверил, что xpath является точным, и экспериментировал с get element by id, однако продолжаю получать исключение No Such Element. Я добавил несколько строк для отключения всплывающих окон, так что это не проблема.

Кто-нибудь знает, что может быть причиной этого? Должно быть что-то, что я упустил.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from selenium.webdriver.support.ui import Select
from selenium.webdriver.chrome.options import Options

#disable notifications
chrome_options = webdriver.ChromeOptions()
prefs = {"profile.default_content_setting_values.notifications" : 2}
chrome_options.add_experimental_option("prefs", prefs)
chrome_options.add_argument("start-maximized")
browser = webdriver.Chrome(chrome_options=chrome_options, executable_path=r'C:/webdrivers/chromedriver.exe')

# open page
browser.get('http://mail.protonmail.com');
time.sleep(5)

#login
username = browser.find_element_by_id("username")
password = browser.find_element_by_id("password")
username.send_keys("testproj")`enter code here`
password.send_keys("Testers_test123")
login_attempt = browser.find_element_by_id("login_btn")
login_attempt.submit()
time.sleep(10)

#compose Message

sidebar = browser.find_element_by_xpath('//*[@id="pm_sidebar"]/button').click()

1 Ответ

0 голосов
/ 05 сентября 2018

попробуйте с одинарными кавычками внутри локатора

browser.find_element_by_xpath("//*[@id='pm_sidebar']/button").click()

Также, чтобы помочь вам больше поделиться своим HTML-кодом в текстовом формате. И вы должны использовать неявные или явные ожидания вместо time.sleep, это не лучший способ ожидания, так как для появления элемента может потребоваться больше или меньше времени. проверить это

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