Подтвердить что ты не робот

Assert/VerifyElementPresent с Python и WebDriver?

Меня просто путают изменения от Selenium до WebDriver и их соответствующей документации. В разделе, посвященном дизайну тестирования в документации, говорится о использовании Assert vs Verify, например AssertElementPresent. Однако при просмотре учебника WebDriver и приступая к установке тестов это не похоже на Python. Я не замечаю что-то в документации, разве это не применимо к WebDriver, не применимому к использованию python, следует ли использовать возможности python, а не команду assert/verify из селена и т.д.?

4b9b3361

Ответ 1

webdriver - это библиотека для управления браузерами. то, что вы хотите использовать, - это методы * find_element * для определения местоположения элементов, а затем утверждение условий против них.

например, этот код выполняет утверждение по содержимому элемента:

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, которая имеет более мощные утверждения.

Ответ 2

В Selenium RC существуют методы проверки/утверждения. В WebDriver они этого не делают. Кроме того, важно отметить, что проверяют и утверждают, и их роль в ваших тестах. В Selenium RC проверьте, выполняется ли проверка в вашем тесте, может ли он быть на тексте, элементах или что у вас есть. Утверждение, с другой стороны, приведет к сбою теста и остановке теста. Преимущества и преимущества обсуждаются в ссылке, на которую вы ссылались.

WebDriver не имеет методов проверки/подтверждения для каждого сообщения. Утверждения выполняются в самом тесте. Если вы посмотрите на ответ Кори, он выполняет "утверждение" в тексте элемента. Если текст элемента не является "примерными доменами", AssertionError будет поднят, что приведет к эффективному сбою теста. Но как насчет проверки? Как уже упоминалось, у WebDriver его нет. Но вы все равно можете выполнить что-то эквивалентное, выполнив сравнение.

if element.text != u'Example Domains':
    print "Verify Failed: element text is not %r" % element.text

Итак, в этом случае ваш тест не будет терпеть неудачу. Но проверка все равно будет выполнена и будет печататься на стандартный вывод.

Итак, в конце концов, это вопрос того, что вы хотите провалить. Это скорее тестовый дизайн. Надеюсь, это поможет.

Ответ 3

Вы должны использовать следующую функцию, чтобы проверить, что:

def is_element_present(self, how, what):
    try: self.driver.find_element(by=how, value=what)
    except NoSuchElementException as e: return False
    return True

По умолчанию создается Selenium IDE при экспорте в код Python.

Затем вы можете утвердить элемент, как показано ниже:

self.assertTrue(self.is_element_present(By.ID, "footer"))
self.assertTrue(self.is_element_present(By.CSS_SELECTOR, "header.global-header"))

Обратите внимание, что для использования By требуется следующий импорт:

from selenium.webdriver.common.by import By

Ответ 4

Другой способ заключается в следующем:

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

Ответ 5

Проверить подтверждение

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