【发布时间】:2015-10-04 00:40:43
【问题描述】:
我想说的是,如果 element1 显示,单击,如果不检查 element2 是否显示,单击等。但是当元素不存在时,我的代码会停止。如果 element1 存在,它会单击它,如果它不存在,代码会停止,但我希望它继续遍历每个 elif,直到找到一个,感谢任何帮助。
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:消息:无法定位元素:{"method":"xpath","selector":"//img[@title='img1']"}
【问题讨论】:
-
“代码停止”是什么意思 - 您是否遇到任何错误?另外,这两个 xpath 表达式是否相同是故意的吗?谢谢。
-
与答案无关...但我建议您更清楚地命名变量。我会将
elem1重命名为image1并将elem重命名为image2或更清晰的名称。它将使您的代码对您和其他人来说更具可读性和可理解性。
标签: python selenium if-statement element