Selenium/python 2.7如何将if/else与find_元素一起使用?
我想说的是,如果显示了element1,请单击,如果没有,请检查element2是否显示,单击,等等。但是当元素不存在时,我的代码停止。如果element1在那里,它会单击它,如果它不在那里,代码会停止,但我希望它继续遍历每个elif,直到找到一个,任何帮助都会被感谢Selenium/python 2.7如何将if/else与find_元素一起使用?,python,selenium,if-statement,element,Python,Selenium,If Statement,Element,我想说的是,如果显示了element1,请单击,如果没有,请检查element2是否显示,单击,等等。但是当元素不存在时,我的代码停止。如果element1在那里,它会单击它,如果它不在那里,代码会停止,但我希望它继续遍历每个elif,直到找到一个,任何帮助都会被感谢 from selenium import webdriver fp = webdriver.FirefoxProfile('') driver = webdriver.Firefox(firefox_profile=fp) dr
from selenium import webdriver
fp = webdriver.FirefoxProfile('')
driver = webdriver.Firefox(firefox_profile=fp)
driver.set_window_size(1400, 1000)
driver.get('')
elem1 = driver.find_element_by_xpath("//img[@title='img1']")
elem = driver.find_element_by_xpath("//img[@title='img2']")
if elem.is_displayed():
elem.click()
print "true"
elif elem1.is_displayed():
elem1.click()
print "1true"
else:
print "false"
错误是
selenium,common.exceptions.NoSuchElementException:消息:无法定位元素:{“方法”:“xpath”,“选择器”:”//img[@title='img1']“}
该错误意味着根本找不到元素。换句话说,它不显示,也不存在 我将创建一个元素/定位器列表(假设您想缩放它),在列表上循环并处理
NoSuchElementException
error。单击元素后退出循环:
from selenium.webdriver.common.by import By
locators = [
(By.XPATH, "//img[@title='img1']"),
(By.XPATH, "//img[@title='img2']")
]
for by, value in locators:
try:
driver.find_element(by, value).click()
break # exit once we click an element
except NoSuchElementException:
pass # element is not present - okay, move on
该错误意味着根本找不到元素。换句话说,它不显示,也不存在 我将创建一个元素/定位器列表(假设您想缩放它),在列表上循环并处理
NoSuchElementException
error。单击元素后退出循环:
from selenium.webdriver.common.by import By
locators = [
(By.XPATH, "//img[@title='img1']"),
(By.XPATH, "//img[@title='img2']")
]
for by, value in locators:
try:
driver.find_element(by, value).click()
break # exit once we click an element
except NoSuchElementException:
pass # element is not present - okay, move on
你所说的“代码停止”是什么意思?你是否有任何错误?另外,两个xpath表达式是相同的,这是故意的吗?谢谢。与答案无关。。。但我建议你把变量命名得更清楚一些。我会将
elem1
重命名为image1
,将elem
重命名为image2
或更清晰的名称。这将使您和其他人更易于阅读和理解您的代码。您所说的“代码停止”是什么意思?您是否遇到任何错误?另外,两个xpath表达式是相同的,这是故意的吗?谢谢。与答案无关。。。但我建议你把变量命名得更清楚一些。我会将elem1
重命名为image1
,将elem
重命名为image2
或更清晰的名称。它将使您和其他人更易于阅读和理解您的代码。