首页 > 解决方案 > 需要有关 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")

我希望一旦状态更改为完成,它应该继续执行。

标签: pythonseleniumwebdriverwait

解决方案


我不得不改变一些东西,但它对我来说很好,我认为可点击的元素效果更好,并且在元素出现之前它不会做任何事情:

WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//tr[contains(text(),'your string')]//tr[5]")))
print("Finished")

推荐阅读