gpt4 book ai didi

python - Selenium 网络驱动程序 : (python) wait for element to not be present (not working)

转载 作者:行者123 更新时间:2023-11-28 21:27:31 25 4
gpt4 key购买 nike

我正在学习 Selenium 网络驱动程序,并已开始使用 Python 来测试网站。我在等待元素不存在代码时遇到问题,因为它似乎超时了。

这是我目前的代码。

def test_(self):
driver = self.driver
driver.get(self.base_url + "/abc")
driver.find_element_by_id("UserName").clear()
driver.find_element_by_id("UserName").send_keys("username")
driver.find_element_by_id("Password").clear()
driver.find_element_by_id("Password").send_keys("password")
driver.find_element_by_id("loginbutton").click()
for i in range(60):
try:
if not self.is_element_present(By.CSS_SELECTOR, ".blockUI"): break
except: pass
time.sleep(1)
else: self.fail("time out")
driver.find_element_by_xpath(".//*[@id='ChangeTaskGridM']/table/thead/tr/th[1]/a").click()
for i in range(60):
try:
if not self.is_element_present(By.CSS_SELECTOR, ".blockUI"): break
except: pass
time.sleep(1)
else: self.fail("time out")
driver.find_element_by_xpath(".//*[@id='ChangeTaskGridM']/table/thead/tr/th[2]/a").click()
for i in range(60):
try:
if not self.is_element_present(By.CSS_SELECTOR, ".blockUI"): break
except: pass
time.sleep(1)
else: self.fail("time out")

我不确定为什么会超时。如果我删除 blockUI,它将运行得很快,而且我也不想在两者之间放置手动中断。有什么想法吗?

检测is_element_present的当前代码

for i in range(60):
try:
if not self.is_element_present(By.CSS_SELECTOR, ".blockUI"): break
except: pass
time.sleep(1)
else: self.fail("time out")

最佳答案

您应该使用 ExpectedConditions 而不是检查该元素是否存在的代码。请阅读doc for waits . presence_of_element_located() 可能是您感兴趣的。

关于python - Selenium 网络驱动程序 : (python) wait for element to not be present (not working),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35725439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com