我正在尝试打开页面的不同部分。这些部分将在单击不同选项卡时打开。 下面是页面的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();
我未找到来源错误
答案 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
元素。
请检查这是否适合您。另外,让我知道它们在使用时会显示多少个匹配的节点。我们将对此进行排序。