iczaur
(iczaur)
#1
Сори за спам , если такая тема уже обсуждалась.
Подскажите пожалуйста как реализовать на WebDriver + Python условия проверки элемента. т.е:
Если кнопка на странице есть - нажать.
Если нет, тест продолжает идти дальше (нажимает на другую кнопку, заполняет поля и тд)
joemast
(Александр Таранков)
#2
Если кнопка не найдена, WebDriver выкинет Exception. Его можно перехватить и идти дальше. Если Exception-а нет, нажать кнопку
1 лайк
iczaur
(iczaur)
#3
def test_logon(self):
driver = self.driver
elem = driver.find_element_by_xpath("//div[2]/a[@class='gb_g']")
elem.click()
driver.set_page_load_timeout(30)
elem = driver.find_element_by_xpath("//*[@id='gmail-sign-in']"):
elem.click()
driver.set_page_load_timeout(30)
driver.find_element_by_xpath("//*[@id='Email']").send_keys('iczaur@gmail.com')
driver.find_element_by_xpath("//*[@id='Passwd']").send_keys("GhjcnbvtyZ2311")
elem = driver.find_element_by_xpath("//*[@id='signIn']")
elem.click()
Тестовый пример.
Не всегда появляется кнопка driver.find_element_by_xpath("//*[@id=‘gmail-sign-in’]"). Подскажите пожалуйста как выловить Exсeption?
polusok
(Mykhailo Poliarush)
#4
try:
You do your operations here
except Exception:
You do your operations here
А касательно вашего вопроса, http://selenium.googlecode.com/git/docs/api/py/common/selenium.common.exceptions.html?highlight=exception#selenium.common.exceptions.NoSuchElementException
Пример может выглядеть вот так вот:
def is_element_present(self, how, what):
try: self.driver.find_element(by=how, value=what)
except NoSuchElementException, e: return False
return True
Если есть желание, время и деньги, можете посмотреть детальное описание и видео мастер-класс об обработке ошибок в python тут Поиск 🔍 организации или лица - Предоставление сведений из ЕГРЮЛ/ЕГРИП в электронном виде и об написании webdriver тестов тут Поиск 🔍 организации или лица - Предоставление сведений из ЕГРЮЛ/ЕГРИП в электронном виде
try:
driver.find_element_by_xpath("//*[@id='gmail-sign-in']")
except NoSuchElementException, e:
pass
1 лайк