Assert/VerifyElement是否与Python和WebDriver一起提供?
我可能只是被从Selenium到WebDriver的变化以及它们各自的文档弄糊涂了。在文档中关于测试设计的一节中,讨论了如何使用AssertElementPresent等。然而,在阅读WebDriver教程并开始设置测试时,Python似乎没有提供这一功能。我是否忽略了文档中的某些内容,这是否不适用于WebDriver,不适用于使用python,我是否应该使用python的功能而不是selenium的断言/验证命令等?WebDriver是一个用于驱动浏览器的库。您想要使用的是*find_element*方法来定位元素,然后针对它们断言条件 例如,此代码对元素的内容执行断言:Assert/VerifyElement是否与Python和WebDriver一起提供?,python,unit-testing,selenium,selenium-webdriver,webdriver,Python,Unit Testing,Selenium,Selenium Webdriver,Webdriver,我可能只是被从Selenium到WebDriver的变化以及它们各自的文档弄糊涂了。在文档中关于测试设计的一节中,讨论了如何使用AssertElementPresent等。然而,在阅读WebDriver教程并开始设置测试时,Python似乎没有提供这一功能。我是否忽略了文档中的某些内容,这是否不适用于WebDriver,不适用于使用python,我是否应该使用python的功能而不是selenium的断言/验证命令等?WebDriver是一个用于驱动浏览器的库。您想要使用的是*find_elem
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://www.example.com')
element = browser.find_element_by_tag_name('h1')
assert element.text == 'Example Domains'
browser.quit()
- 注意:这个示例是纯python,带有一个简单的断言。最好使用python的unittest这样的测试框架,它具有更强大的断言
if element.text != u'Example Domains':
print "Verify Failed: element text is not %r" % element.text
所以在这种情况下,你的测试不会失败。但仍将进行验证,并将打印到标准输出
所以最终,问题在于你想失败什么。这更像是一个测试设计。希望这有帮助。验证断言
driver= webdriver.Firefox()
String x =driver.findElement(By.xpath("//*[@id='userNavLabel']")).getText();
System.out.println(x);
//Assert.assertEquals(actual, expected)
Assert.assertEquals("Anandan Aranganath", x);
应使用以下功能检查:
def is_element_present(self, how, what):
try: self.driver.find_element(by=how, value=what)
except NoSuchElementException as e: return False
return True
这是导出到Python代码时默认生成的
然后,您可以按如下方式断言元素:
self.assertTrue(self.is_element_present(By.ID, "footer"))
self.assertTrue(self.is_element_present(By.CSS_SELECTOR, "header.global-header"))
请注意,要使用,需要以下导入:
from selenium.webdriver.common.by import By
另一种方式是:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('http://www.testing.com')
element = driver.find_element_by_xpath('xpath of the element').text
assert element == 'Sample Text'
driver.quit()
应该是一个单独的问题,但与此相关:我如何断言某个元素不在页面上?在此处找到我的答案:我宁愿对find_element_by_tag_name调用执行一些try/exception块,因为如果找不到该元素,那么测试将标记异常错误而不是失败。。。或者有没有一种方法可以断言元素是存在的,而不会带来这种不便呢。不是Java