java - 找到将出现在四种不同场景中的元素
问题描述
<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 查找元素是可行的。
解决方案
根据您共享的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')]"));
推荐阅读
- python - 使用 ctypes 传递引用地址结构
- java - 读取和写入 NFC
- python - 在 Django Admin 中使字段唯一
- python - 自定义网格单元编辑器。ComboBox 小部件的不正确行为
- c++ - 保留() - 空向量上的数据()技巧 - 正确吗?
- python - 如何在不使用库中的旋转功能的情况下使我的多边形旋转
- excel - 如何更改模块名称?
- assembly - 用于 2 个或更多寄存器的程序集推送或保留堆栈
- c# - 仅在第一次使用 Azure Function HttpTrigger 从主题中获取消息时使用 MessageReceiver
- c++ - C++/CLI 将位图转换为 OpenCV Mat