单击Selenium webdriver中的选项卡

时间:2015-09-01 09:04:38

标签: java selenium automation automated-tests

enter image description here我正在尝试打开页面的不同部分。这些部分将在单击不同选项卡时打开。 下面是页面的HTML结构

<div id="MainContentPlaceHolder_divMainContent">
<div id="MainContentPlaceHolder_tbCntrViewCase" class="Tab ajax__tab_container ajax__tab_default" style="width: 100%; visibility: visible;">
<div id="MainContentPlaceHolder_tbCntrViewCase_header" class="ajax__tab_header">
<span id="MainContentPlaceHolder_tbCntrViewCase_tbPnlCaseDetails_tab" class="ajax__tab_active">
<span id="MainContentPlaceHolder_tbCntrViewCase_tbPnlVehicle_tab" class="ajax__tab_hover">
<span class="ajax__tab_outer">
<span class="ajax__tab_inner">
<a id="__tab_MainContentPlaceHolder_tbCntrViewCase_tbPnlVehicle" class="ajax__tab_tab" style="text-decoration:none;" href="#">
<span>Vehicle</span>
</a>
</span>
</span>
</span>

我写了下面的行,但这些不起作用

driver.findElement(By.id("__tab_MainContentPlaceHolder_tbCntrViewCase_tbPnlVehicle")).click();

        driver.findElement(By.xpath("//a[text()='Vehicle']")).click();

未找到来源错误

1 个答案:

答案 0 :(得分:0)

根据OP的评论,我发布了可用于定位相关元素的xpath:

1- //span[@id='MainContentPlaceHolder_tbCntrViewCase_tbPnlVehicle_tab']//span[.='Vehicle']

这会将带有innerHTML / text的span元素定位为广告,它是span的后代, id MainContentPlaceHolder_tbCntrViewCase_tbPnlVehicle_tab

OR

2 - //span[@id='MainContentPlaceHolder_tbCntrViewCase_tbPnlVehicle_tab']//span[.='Vehicle']/..

这将使用innerHTML / text将span元素的定位为广告,它是span的后代, id MainContentPlaceHolder_tbCntrViewCase_tbPnlVehicle_tab在这种情况下是a元素。

请检查这是否适合您。另外,让我知道它们在使用时会显示多少个匹配的节点。我们将对此进行排序。