Python:如何验证页面上的元素是否已被删除?

时间:2017-08-08 15:08:58

标签: python selenium-webdriver automation

我的var results = from row in dt.AsEnumerable() group row by new { Policy = row.Field<int>("POLICY"), StartDt = row.Field<string>("START_DT"), EndDt = row.Field<string>("END_DT"), Type = row.Field<string>("TYPE") } into groupings select new { groupings.Key.Policy, groupings.Key.StartDt, groupings.Key.EndDt, groupings.Key.Type, TotalAmount = groupings.Sum(t => t.Fields<decimal>("AMOUNT")) } 上有一个Clear Filter按钮,点击后会被删除。

我的测试用例如下:

  

1)单击“清除过滤器”按钮

     

2)检查是否已从UI中删除了“清除过滤器”按钮

在下面的代码中,我点击了按钮,然后我再次点击它,因为它不存在测试用例应该通过,但我试图通过再次点击它来验证失败,这似乎不是最佳方式......

UI

我可以在此处使用 log_page.clear_filter_bttnclick() try: if log_page.clear_filter_bttnclick(): testrailFunctions.failed() except NoSuchElementException: testrailFunctions.passed() 来验证按钮是否被移除,或者是否有更好的方法来确认try/except上不再存在Clear Filter按钮?

干杯

1 个答案:

答案 0 :(得分:0)

您可以检查元素是否存在。

在python中它应该完成如下: -

from selenium.common.exceptions import NoSuchElementException        
def check_exists_by_xpath(xpath):
    try:
        webdriver.find_element_by_xpath(xpath)
    except NoSuchElementException:
        return False
    return True

来源: -

Python - Selenium WebDriver - Checking element exists

OR

方法返回WebElement对象,而不是对象列表。你必须这样做:

if len(browser.find_elements_by_xpath('//path')) == 0:
    print ('element not present')

Sorce: -

verify element existence selenium