如何解决无头chrome中的元素属性与常规chrome中的元素属性不同,因此selenium返回NoSuchElementException
此代码适用于常规Chrome:
from selenium import webdriver
from time import sleep
def login(email,password):
with webdriver.Chrome('/path/to/chromedriver') as driver:
driver.get('https://stackoverflow.com/users/signup?ssrc=head&returnurl=%2fusers%2fstory%2fcurrent%27')
sleep(2)
driver.find_element_by_xpath('//*[@id="openid-buttons"]/button[1]').click()
driver.find_element_by_xpath('//input[@type="email"]').send_keys(email)
driver.find_element_by_xpath('//*[@id="identifierNext"]').click()
sleep(3)
driver.find_element_by_xpath('//input[@type="password"]').send_keys(password)
driver.find_element_by_xpath('//*[@id="passwordNext"]').click()
sleep(2)
driver.get('https://youtube.com')
login('email','password')
但是,在无头的chrome中,硒会继续为不同的元素返回NoSuchElementException。
我已经通过获取无头铬的页面HTML来验证几乎所有属性都是不同的,但是即使没有,您也可以看到不同的Google登录页面常规和无头chrome访问:
我不认为这是因为我的语言中使用了普通的chrome。元素属性完全不同,而不仅仅是文本标签。
为什么会这样,我该如何解决?
解决方法
这意味着元素是随机的,请尝试在常规浏览器中再次查找它,看看它是否与以前相比有所改变,如果确实不能使用XPath捕获它,则必须使用类名或cssSelector !祝你好运
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。