在WebDriver上需要帮助等待text_to_be_present_in_element_value

时间:2019-07-04 09:27:10

标签: python selenium webdriverwait

我试图等待直到Web元素将其状态更改为“完成”?有人可以在我做不到的地方查看我的代码吗?

我看到应用程序状态已更改为“完成”,但是代码执行没有继续吗?我收到了TimeOutException。

 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")

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

1 个答案:

答案 0 :(得分:0)

我必须更改某些内容,但对我来说却很好,我认为可以点击的元素效果更好,并且在元素出现之前它不会做任何事情:

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