XPATH定位到的元素有多个,该怎么办?

用selenium常用XPATH进行定位,而XPATH的检验方法是$x(“xxxx”),往后加上操作即可实现。
XPATH的简单定位元素有多个该怎么办??是写繁琐的定位吗,不,用强大的JavaScript来进行定位点击。
例如在百度首页,搜索一下,在控制台进行以下命令。

$x("//input[@id='su']")[0].click()

当XPATH定位到多个标签时,可以选择运行第几个标签,注意是从0开始的。
而用selenium执行webdriver时必须精准定位,若用此方法就可以避免定位繁琐的尴尬,当然算是执行js命令,写在代码里面就方便多了。

js = "var q = $x(\"//input[@id='su']\")[0].click()"
driver.execute_script(js)
# 对比写法,若XPATH定位到多个,下方代码就会运行失败,而上方就没问题
driver.find_element(By.XPATH, "//input[@id='su']").click()

你可能感兴趣的:(selenium,测试)