有人告诉我,我可以检查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")
网页网址是https://irs.thsrc.com.tw/IMINT/,它有一个弹出消息框。
我认为这个盒子的z-index应该是1,其他元素应该是零。但是,使用上面的python语句使Selenium对我的所有查询都返回“auto”。我读过一些人建议z-index查询不适用于位置值为“static”的元素。所以在下面的页面中:http://aludratest.github.io/aludratest/xref/org/aludratest/service/gui/web/selenium/selenium2/ZIndexSupport.html重复查询“z-index”属性,直到它不是“auto”。 但是我尝试了这个,并且在几次试验后导致定位失败。
我的问题如下:
谢谢
好像你很亲密。所需的元素是一个动态元素,所以要找到你必须为visibility_of_element_located()
引入WebDriverWait的元素,你可以使用以下任何一个Locator Strategies:
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