【发布时间】:2013-11-18 17:50:05
【问题描述】:
自动化规范 - 基于 Java 的 WebDriver
嗨
我正在开发一个 webdriver 自动化(Java 代码)来自动预订巴士。
这是我的场景....
(1)give 出发地和目的地 - 完成
(2) 选择日期 - 完成
(3)搜索巴士 -DONE
(4)查看座位和选择 - 我在这里打了
现在,作为搜索结果,我得到了一个巴士列表,其中包含查看座位的选项。
公交车列表显示在 dynamic-DataTable 中,其中每行包含一个名为“view seat”的图像。单击 viewseat-image 将为我提供座位布局,我可以在其中选择 座位。发现viewseat-images具有不同的ID和相同的类名。现在我需要使用它的 id 找到并单击我想要的viewseat-image。
但情况是
* 数据表是动态的,所以 id 不断变化,这不允许我通过静态 id 找到它。
* id 是该编码中唯一独特的东西,用于区分viewseat-image。所以只有当我得到正确的 id 时才能找到它。
现在我的想法是,获取所有viewseat-images的运行时ID,使用唯一的类名并存储在变量中,并使用ID来定位元素。
因此,让我知道是否有可能使用类名获取该数据表中所有图像的 id。
【问题讨论】:
-
您是否尝试过使用不同的选择器而不是席位 ID? Xpath、CSS 等。如果您可以提供 html 代码 sn-p 作为您问题的一部分,它会更容易为您提供帮助。
-
我试过了。但我只能在 HTML 中找到 ID 和类名。这是上面提到的viewseat-image的HTML代码。
<a id="100001610410140976/2013-11-07" class="pop-up viewSeatsButtonStyle" href="javascript:void(0);">View seats</a> -
除了ID、名称、类名等还有其他选择器。有时您需要使用xpath 或css 的'uglier' 方法。如果您可以添加表格一部分的 html sn-p 而不仅仅是那个锚点,我可以尝试为您指明正确的方向。
-
感谢@MarkRowlands。我也在寻找类名、名称、cssSelector。但找不到。我们的开发人员正在使用 hte DataTable 而不是 Grid View 来显示此列表。因此,如果提供表格的 HTML sn-p 对您来说太难了,因为它包含一个地狱 outa css 标记。所以我给你表格的概述。表包含 TRAVELS NAME、DEP TIME、ARRIV TIME、PRICE 等列,最后是 VIEWSEAT 图像。
-
所以我只给你旅行运营商和 viewSeat 的 sn-p。
<a id="103838910410032127" class="cancel cancelonwards" name="2013-11-07" href="#" style="color:#4A5892;font-size:11px;font-family:Verdana;font-weight:200;">Canc.Policy</a> <a id="103838910410032127/2013-11-07" class="pop-up viewSeatsButtonStyle" href="javascript:void(0);">View seats</a>
标签: java automation webdriver selenium-webdriver ui-automation