[英]How to get the z-index attribute of an element using Selenium through Python?
有人告诉我,我可以检查 Web 元素的“z-index”属性来检查它们的深度。 我首先使用以下两个语句之一成功定位元素。
e = WebDriverWait(tA.driver,1).until(EC.visibility_of_element_located((By.XPATH, xPath)))
e = WebDriverWait(tA.driver, 1).until(EC.element_to_be_clickable((By.XPATH, xPath)))
然后我在 Firefox 和 win10 中使用了以下 python 代码:
zi = e.value_of_css_property("z-index")
网页 URL 是https://irs.thsrc.com.tw/IMINT/ ,它有一个弹出消息框。
我认为这个盒子的 z-index 应该是 1,其他元素应该是 0。 但是,使用上面的 python 语句使 Selenium 向我的所有查询返回“auto”。 我读到有人建议 z-index 查询不适用于位置值为“static”的元素。 所以在以下页面: http : //aludratest.github.io/aludratest/xref/org/aludratest/service/gui/web/selenium/selenium2/ZIndexSupport.html重复查询“z-index”属性,直到它不是“自动”。
但是我试过这个,结果在几次试验后定位失败。
我的问题如下:
谢谢
看来你很接近了。 所需的元素是一个动态元素,因此要定位您必须为visibility_of_element_located()
引入WebDriverWait的元素,您可以使用以下任一定位器策略:
CSS_SELECTOR
:
print(WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.ui-dialog.ui-widget.ui-widget-content.ui-corner-all"))).value_of_css_property("z-index"))
XPATH
:
print(WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='ui-dialog ui-widget ui-widget-content ui-corner-all ']"))).value_of_css_property("z-index"))
控制台输出:
1002
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.