我正尝试自动登录一些法定帐户来检查其收入。
我被困在第一部分:登录屏幕。
我尝试使用css_selector,xpath和name。我的问题是设置法定登录页面的方式,对于它的每个新实例,xpath都是NEW,因此无法通过该方法选择元素。
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('headless')
options.add_argument('window-size=1200x600')
driver = webdriver.Chrome(options=options)
driver.get('https://quora.com')
driver.implicitly_wait(3)
email = driver.find_element_by_css_selector('input[type=password]')
password = driver.find_element_by_css_selector('input[type=password]')
login = driver.find_element_by_css_selector('input[value="Login"]')
email.send_keys('')
password.send_keys('')
driver.get_screenshot_as_file('main-page.png')
是我到目前为止所拥有的。
任何人都可以浏览www.quora.com并弄清楚我应该针对哪个元素以填写表格并提交吗?因为此时我已经尝试了一个多小时,但没有成功,因为没有任何效果。
答案 0 :(得分:1)
您的问题出在错误的选择器上
input[type=password]
选择器,这是不正确的,因为您应该为电子邮件和密码输入使用不同的选择器您的选择器匹配2个元素,Chrome Developer Tools
证明了这一点因此Selenium尝试将密钥发送给不可见/不可交互的第一个密钥
因此请确保:
使用选择器以清晰独特的方式标识元素,这样您就可以确信自己正在使用所需的元素,即坚持使用Placeholder
attribute < / p>
email = driver.find_element_by_css_selector('input[Placeholder=Email]')
password = driver.find_element_by_css_selector('input[Placeholder=Password]')
在测试开发过程中,最好使用“常规”浏览器,以便您可以观察测试运行时发生的情况