Python Selenium - 如何判断网页元素(element)是否存在
在AirtestIDE作web做界面UI自动化测试的时候,有时候会遇到一种情况,就是页面可能因为具体操作不同而使流程结果产生不一样的变化,比如可能随机出现的确认框,又或者一般流程是不会出现的,但有可能存在某个不影响流程的因素,但仍是属于流程的,而导致测试流程发生的可控范围内变化。
在python里面可进行逻辑判断的常用一般方法有: if/else,try/except
try/except的格式如下:
try :
do action 1
except A:
do action 2
except B:
do action 3
else :
do action 4
A B 可选,如果不带任何条件,则按照以下顺序执行:try 正常情况,except 异常情况,else 啥事没有。
if/else 格式如下:
if A:
do action 1
elif B:
do action 2
else :
do action 3
如果使用if else判断元素是否存在的话可能会直接报错,比如下面的代码,以淘宝为例:
driver.get("https://www.taobao.com/")
driver.find_element_by_id("q").send_keys("墙架")
driver.find_element_by_xpath("//button[@type='submit']").click()
#关键字搜索需要登陆,以下代码判断登陆框是否存在
if driver.find_element_by_xpath("//*[@id=\"J_LoginBox\"]") :
print("please login first!")