2013-10-08 1 views
3

Я ни в коем случае не специалист по селену, и поэтому я смиренно прихожу сюда за помощью. После выполнения скрипта python ниже я подумал, что если он не удался между отпечатками, я мог бы просто просмотреть журналы и посмотреть, где был последний отпечаток. К сожалению, скрипт продолжает работать до конца и печатает все, независимо от того, успешно ли он или нет. Вот что у меня есть:Selenium Python - Если элемент не существует, сделайте это, иначе

print("Attempting, map zoom 4x.") 
driver.find_element_by_xpath("//*[@class=\"leaflet-control-zoom-in\"]").click() 
driver.find_element_by_xpath("//*[@class=\"leaflet-control-zoom-in\"]").click() 
driver.find_element_by_xpath("//*[@class=\"leaflet-control-zoom-in\"]").click() 
driver.find_element_by_xpath("//*[@class=\"leaflet-control-zoom-in\"]").click() 
print("Zoom in 4x. Successful") 

То, что я пытаюсь сделать, это следующее:

print("Attempting, map zoom 4x.") 
if driver.find_element_by_xpath ...... exists, 
then 
    driver.find_element_by_xpath("//*[@class=\"leaflet-control-zoom-in\"]").click() 
    driver.find_element_by_xpath("//*[@class=\"leaflet-control-zoom-in\"]").click() 
    driver.find_element_by_xpath("//*[@class=\"leaflet-control-zoom-in\"]").click() 
    driver.find_element_by_xpath("//*[@class=\"leaflet-control-zoom-in\"]").click() 
    print("Zoom in 4x. Successful") 
else 
    print("Element does not exist, it failed.") 

Как отформатировать это для питона/селена? Любая помощь приветствуется. Спасибо.

ответ

3

Вы могли бы попробовать что-то вроде:

print("Attempting, map zoom 4x.") 
elem = driver.find_element_by_xpath('/xpath/to/your/element/here') 
if elem.is_displayed(): 
    elem.click() 
    print("Zoom in 4x. Successful") 
else: 
    print "Element is not visible" 
+0

Благодаря qaduderino, я собираюсь попробовать это прямо сейчас. Отчитается с результатами. – MacGruber

+0

Кажется, селен висит на driver.find .... и т. Д. Потому что он не может найти элемент для начала. Я пробовал напрямую обращаться к выражению if. if driver.find_element_by_xpath (.....). is_displayed(): это также терпит неудачу. – MacGruber

+0

Я нашел решение: – MacGruber

Смежные вопросы