首页 > 解决方案 > 找到将出现在四种不同场景中的元素

问题描述

<input type="submit" name="ccBtnBook" value="Book" id="ccBtnBook" 
class="bookbtn2 flR" style="background-color:Transparent;border- 
style:None;">

<input type="submit" name="ccRepItinerary$ctl00$ccLbtnSelect" value="Book" 
id="ccRepItinerary_ctl00_ccLbtnSelect" class="bookbtn2" style="background- 
color:Transparent;border-style:None;">

<input type="button" value=" Book " class="bookbtn2" onclick="iSB('1')">

<input type="button" value=" Book " class="bookbtn2" 
onclick="iSB('4','MCT','DXB','DXB','MCT','True')">

<input type="button" value=" Book " class="bookbtn2" 
onclick="iSB('1','MCT','DXB','','','False')">

<input type="button" value=" Book " class="bookbtn2" onclick="iSB('4')">

我曾尝试使用类名和 xpath,但两者都失败了。我什至尝试使用 JavaScript 点击。

对于案例二,通过 ID 查找元素是可行的。

标签: javaseleniumselenium-webdriverxpathcss-selectors

解决方案


根据您共享的HTML,在四种不同的场景中定位元素,您可以使用以下任一定位器策略

  • cssSelector

    driver.findElement(By.cssSelector("input.bookbtn2[value='Book'][type='button'][onclick^='iSB']"));
    
  • xpath

    driver.findElement(By.xpath("//input[@class='bookbtn2' and @value='Book'][@type='button' and starts-with(@onclick,'iSB')]"));
    

推荐阅读