python selenium 模拟浏览器遇到的问题
2021-07-28 本文已影响0人
ltochange
遇到的问题
(1)按钮无法点击
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted
可能的原因,点击的地方受到了遮挡需要先把遮挡去掉,例如下图
在这里插入图片描述
此时,模拟浏览器进行点击“登录”按钮,因为“登录”按钮被遮挡,就会出现上面的错误
解决方法:先选择好账户,再输入密码,最后再点登录
(2)使用xpath获取属性值出错
selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: The result of the xpath xx expression is: [object Attr]. It should be an element.
原因是,webdriver
的定位方法和浏览器xpath
不一样,不能用find_elements_by_xpath
直接定位到标签的属性。需要首先定位到元素之后,使用get_attribute
方法到属性值。
(3)在html中能够查看到,但是使用find_elements_by_xpath无法获取,可能是内容被隐藏起来了。style="display: none;"
,此时可以通过get_attribute("textContent")
获取内容
item = driver.find_element_by_xpath(tmp_xpath)
item.get_attribute("textContent")