起因:在查找一些控件時,可能控件的一些屬性是變化的,那在匹配時需要進行模糊匹配,模糊匹配,使用xpath
定位方式有種:
contains(屬性名,字符串):使用文本匹配,功能很強大
starts-with(屬性名,字符串):根據開頭進行模糊匹配
ends-with(屬性名,字符串):根據結尾內容進行匹配
matchs(屬性名,字符串):根據正則進行匹配
案例:
如圖,點擊底部的一個收藏,彈出OK按鈕,需要點擊這個Ok,就能正常執行下一步
<span type="1">OK</span>
原本是通過css,進行定位,發現每打開商品,商品的頁面開始都會有變化,試試模糊匹配
從瀏覽器復制出來的css地址為:
#layermbox0 > div.layermmain > div > div > div.layermbtn > span
重新打開頁面,變化為
#layermbox1 > div.layermmain > div > div > div.layermbtn > span
前提已初始化了driver,並且已經可以啟動
模糊匹配
使用starts-with
driver.findElement(By.xpath("//span[starts-with(@type,'1')]")).click();
//span:外部標簽
starts-with(類型或者內容,值)
使用contains
driver.findElement(By.xpath("//*[contains(text(),'ok')]")).click();
看其他人對text還有另外一種寫法
driver.findElement(By.xpath("//*[text()='ok')]")).click();
目前沒有使用正則,和ends-with匹配,有遇到案例在補充