于是可以用 selenium 执行 JavaScript 脚本来获取隐藏元素的 text Selenium自动化测试实战

from selenium import webdriver
import 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("[email protected]")
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) # [email protected]

这是通过 JavaScript 的方法获取的,其实也可以通过鼠标操作的方法,鼠标放到元素的位置上,让隐藏元素显示出来,就可以正常操作了。

get_attribute('innerText')

看到评论可以用get_attribute('innerText')获取元素的文本属性,试了下也是可以的

from selenium import webdriver
import 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("[email protected]")
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)    # [email protected]

# 方法二 get_attribute('innerText')
t = driver.find_element_by_css_selector('.userdetail p').get_attribute('innerText')
print(t)

运行结果:[email protected]

05-07 13:32