于是可以用 selenium 执行 JavaScript 脚本来获取隐藏元素的 textSelenium自动化测试实战
from selenium import webdriverimport time# 作者-上海悠悠 QQ交流群:717225969# blog地址 https://www.cnblogs.com/yoyoketang/driver = webdriver.Chrome()driver.get("http://49.235.x.xx:8200/users/login/")time.sleep(3)# 先登录time.sleep(3)driver.find_element_by_id("username").send_keys("1234@qq.com")driver.find_element_by_id("password_l").send_keys("123456")driver.find_element_by_id("jsLoginBtn").click()time.sleep(2)js = "return document.querySelector('.userdetail p').innerText"text = driver.execute_script(js)print(text) # 1234@qq.com
这是通过 JavaScript 的方法获取的,其实也可以通过鼠标操作的方法,鼠标放到元素的位置上,让隐藏元素显示出来,就可以正常操作了。
get_attribute('innerText')看到评论可以用get_attribute('innerText')获取元素的文本属性,试了下也是可以的
from selenium import webdriverimport time# 作者-上海悠悠 QQ交流群:717225969# blog地址 https://www.cnblogs.com/yoyoketang/driver = webdriver.Chrome()driver.get("http://49.235.x.x:8200/users/login/")time.sleep(3)# 先登录time.sleep(3)driver.find_element_by_id("username").send_keys("1234@qq.com")driver.find_element_by_id("password_l").send_keys("123456")driver.find_element_by_id("jsLoginBtn").click()time.sleep(2)# # 方法一# js = "return document.querySelector('.userdetail p').innerText"# text = driver.execute_script(js)# print(text) # 1234@qq.com# 方法二 get_attribute('innerText')t = driver.find_element_by_css_selector����,����('.userdetail p').get_attribute('innerText')print(t)
运行结果:1234@qq.com