python - 需要有关 WebDriverWait text_to_be_present_in_element_value 的帮助
问题描述
我试图等到网络元素将其状态更改为“完成”?有人可以在我不正确的地方查看我的代码吗?
我看到应用程序状态已更改为“完成”,但代码执行没有继续?我收到超时异常。
def check_status(self,myString):
table = self.browser.find_element_by_id(self.table_id)
col= table.find_element_by_xpath(
"//tr[contains(.,'" + myString + "')]//td[5]")
print(col.text)
if col.text=='finished':
return col.text
else:
try:
wait = WebDriverWait(self.browser, 180)
element = wait.until(
EC.text_to_be_present_in_element_value((By.XPATH, "//tr[contains(.,'" + myString + "')]//td[5]"), 'finished'))
print(element)
return col.text
except:
col.text
raise TimeoutException("Not Finished yet")
我希望一旦状态更改为完成,它应该继续执行。
解决方案
我不得不改变一些东西,但它对我来说很好,我认为可点击的元素效果更好,并且在元素出现之前它不会做任何事情:
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//tr[contains(text(),'your string')]//tr[5]")))
print("Finished")
推荐阅读
- postgresql - 使用许多常见的子表达式进行更新
- postgresql - 如何正确设置逻辑 postgresql 复制(两种方式)?
- java - 如何使用 RecyclerView 在编辑模式下显示选中的项目?
- apache - 在 odoo 中使用 apache2 和 wsgi 为单个域设置 ssl,但服务器有多个域
- javascript - 为什么我不能从模块外部引用属性集?
- python - 日历算法
- templates - openshift编写模板根据条件创建路线
- jquery - 我如何覆盖 jquery show() 事件?
- php - 数据库备份在使用 pdo 的 codeignator 中不起作用
- mvvm - 使用 Flutter 作用域模型时从模型深处通知侦听器