学习在Python for selenium web驱动程序中使用Assert和Asserttrue

学习在Python for selenium web驱动程序中使用Assert和Asserttrue,python,selenium,webdriver,assert,Python,Selenium,Webdriver,Assert,我试图让一个PythonWebDriver加载一个网页,然后断言true并在有文本或对象时运行print命令,如果没有,我希望它继续运行我的循环。我是python的新手,一直在艰苦地学习python,并阅读文档。我花了最后一天左右的时间试图让我的代码找到文本或元素,但它没有反馈信息…这是我的代码到目前为止减去关于访问网页的顶部部分,我只是这个计数循环断言逻辑的东西 count = 1000.00 while count < 1000.03: driver.find_element_

我试图让一个PythonWebDriver加载一个网页,然后断言true并在有文本或对象时运行print命令,如果没有,我希望它继续运行我的循环。我是python的新手,一直在艰苦地学习python,并阅读文档。我花了最后一天左右的时间试图让我的代码找到文本或元素,但它没有反馈信息…这是我的代码到目前为止减去关于访问网页的顶部部分,我只是这个计数循环断言逻辑的东西

count = 1000.00
while count < 1000.03:
    driver.find_element_by_id("select").clear()
    driver.find_element_by_id("select").send_keys(str(count))
    time.sleep(1)
    driver.find_element_by_id("BP").click()
    driver.find_element_by_id("BP").click()
    count += 0.01 ## increases count to test
    highervalue = driver.find_element_by_link_text("Select Error")
    assertTrue(driver.link_contains_match_for("")) ##could also be, ##text_containt_match_for("ex") or driver.assertTrue(element in WEBPAGE)??
        print 'Someone is %.7r' %count
    else:
        print 'I have %.7r' %count
    time.sleep(1)

我搜索过的其他一些例子也可以使用:

self.assertTrue(self.is_element_present(By.ID, "FOO"))

self.assertTrue(self.is_element_present(By.TEXT, "BAR"))

self.assertTrue(self.is_text_present("FOO"))

self.assertTrue(self.driver.is_text_present("FOO"))

有人能告诉我,当我在网页中找到某个内容时,我将如何编写该部分,如果找到了,它会给我反馈吗?

Selenium包含了一些已知的方法,可以帮助解决这种特定情况。我会仔细阅读关于显式等待的文档。此外,还有一些可能是有用的

此外,还有点离题,以所示代码中的方式使用断言是不典型的。通常,您不应该考虑使用断言来检查条件,而应该考虑使用一个必须为true的条件来通过测试,否则测试将停止并且没有理由继续

干杯。

假设您的“选择错误”消息实际上是一条链接文本,您可以尝试使用“try/except”语句

try:
   WebDriverWait(driver, 3).until(
      expected_conditions.text_to_be_present_in_element((By.LINK_TEXT, "Select Error"), "Select Error")
   )
   print "Link Found..."
except NoSuchElementException:
   pass

这段代码尝试查找“选择错误”链接文本3秒钟,捕获NoTouchElementException错误,然后继续编写代码。

谢谢,我读了一些关于等待和其他问题的内容。您认为我检查循环中文本条件的最佳方法是什么?我不认为我需要它来等待条件,我希望它能尽快检查每个数字,直到页面加载计数错误。我可以使用预期参数吗?selenium.webdriver.support.expected_conditions.text_to_be_present_in_元素(定位器,text_)基:对象检查指定元素中是否存在给定文本的期望。文本定位器。但是,如果存在,我如何让它打印,或者如果不存在,我如何继续循环而不打印?或者,即使是我也无法工作的,当然,因为driver find元素不会返回真值或假值,如果返回了,我会在这里得到答案。那么,如何从查找此文本中返回true呢?错误=驱动程序。通过链接文本(“选择错误”)查找元素。文本if(错误==true):打印“某人是%.7r”%count其他:打印“我有%.7r”%count
try:
   WebDriverWait(driver, 3).until(
      expected_conditions.text_to_be_present_in_element((By.LINK_TEXT, "Select Error"), "Select Error")
   )
   print "Link Found..."
except NoSuchElementException:
   pass