繁体   English   中英

如何通过 Python 使用 Selenium 获取元素的 z-index 属性?

[英]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”属性,直到它不是“自动”。
但是我试过这个,结果在几次试验后定位失败。

我的问题如下:

  1. 在这种情况下,我可以更改元素的位置属性吗?
  2. 如果我更改元素的位置属性,它会起作用吗?

谢谢

看来你很接近了。 所需的元素是一个动态元素,因此要定位您必须为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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM