按钮无法读取Selenium Python(chrome webdriver,protonmail)

问题描述 投票:0回答:1

我正在学习使用selenium和python2,我正在创建一个程序来登录并使用protonmail撰写邮件。

一切顺利进行,直到它与侧边栏一致。我已经验证了xpath是准确的,并且已经通过id尝试了get元素,但是继续获得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()
python-2.7 selenium google-chrome selenium-chromedriver
1个回答
0
投票

尝试使用定位器内的单引号

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

还可以帮助您以文本格式分享您的HTML代码。你应该使用隐式或显式等待而不是time.sleep它不是最好的等待方式,因为它可能需要更多或更少的时间来显示元素。 check this out

© www.soinside.com 2019 - 2024. All rights reserved.