Selenium IE驱动程序定位器-一个复杂的元素Xpath或CSS

Selenium IE驱动程序定位器-一个复杂的元素Xpath或CSS,xpath,css-selectors,selenium-webdriver,Xpath,Css Selectors,Selenium Webdriver,我在一个页面上有一个按钮,我需要为其编写一个定位程序-到目前为止尚未成功,因此希望在此获得一些帮助: <div class="border" style="border-radius: 10px 10px 10px 10px;"> <div> <span id="btnAddClient" class="buttons"> <div id="clientContainer"> <div id="ClientAccordian_204" cla

我在一个页面上有一个按钮,我需要为其编写一个定位程序-到目前为止尚未成功,因此希望在此获得一些帮助:

<div class="border" style="border-radius: 10px 10px 10px 10px;">
<div>
<span id="btnAddClient" class="buttons">
<div id="clientContainer">
<div id="ClientAccordian_204" class="accordion ui-accordion ui-widget ui-helper-reset ui-accordion-icons" role="tablist">
<h3 id="H3Client_204" class="ui-accordion-header ui-helper-reset ui-state-active ui-corner-top" role="tab" aria-expanded="true" tabindex="0">
<div class="ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content-active" role="tabpanel" style="">
<span id="btnAddYear" class="buttons">
<button onclick="javascript:ShowHideAddYear(204,0);" style="float: right; background-color: rgb(238, 238, 238);">
<button id="btnEditClient_204" title="Edit" style="float:right;">
<br>
</span>
<div id="yearsContainer_204">
</div>
</div>
<div id="ClientAccordian_210" class="accordion ui-accordion ui-widget ui-helper-reset ui-accordion-icons" role="tablist">
<h3 id="H3Client_210" class="ui-accordion-header ui-helper-reset ui-state-active ui-corner-top" role="tab" aria-expanded="true" tabindex="0">
<div class="ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content-active" role="tabpanel" style="">
<span id="btnAddYear" class="buttons">
<button onclick="javascript:ShowHideAddYear(210,0);" style="float: right; background-color: rgb(238, 238, 238);">
<button id="btnEditClient_210" title="Edit" style="float:right;">
<br>
</span>
<div id="yearsContainer_210">
</div>
</div>
<div id="ClientAccordian_209" class="accordion ui-accordion ui-widget ui-helper-reset ui-accordion-icons" role="tablist">
<div id="ClientAccordian_211" class="accordion ui-accordion ui-widget ui-helper-reset ui-accordion-icons" role="tablist">
<div id="ClientAccordian_215" class="accordion ui-accordion ui-widget ui-helper-reset ui-accordion-icons" role="tablist">
<h3 id="H3Client_215" class="ui-accordion-header ui-helper-reset ui-state-active ui-corner-top" role="tab" aria-expanded="true" tabindex="0">
<div class="ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content-active" role="tabpanel" style="">
<span id="btnAddYear" class="buttons">
<button onclick="javascript:ShowHideAddYear(215,0);" style="float: right; background-color: rgb(238, 238, 238);">
<button id="btnEditClient_215" title="Edit" style="float:right;">
<br>
</span>
<div id="yearsContainer_215"></div>
</div>
</div>
</div>
</div>





在这一页上,这些按钮中的第3个出现了,但可能还有更多的
我在您提供的html中没有看到“添加年份”文本。如果您将其更改为//span[@id='btnAddYear']/按钮[1],它会工作吗?

这个怎么办

'//span[@id="btnAddYear"]//button[contains(., "Add Year")]'

感谢大家的支持,我做了很多事情,比如切换到元素和触发“回车”事件等,但都没有效果。这是Selenium IE驱动程序的一个问题

XPath使用基于1的索引器,而不是基于0的索引器(如C#等)。也就是说XPath列表中的第一个元素是[1],而不是[0]。嗨,Spencer,感谢您的响应,遗憾的是按钮[0]也不起作用。此外,每个跨度下的文字如下所示。像Arran说的那样加上一年,试试[1]谢谢Arran,[1]不起作用-只是说“无法评估或不会产生WebElement”,我听说这是IE8的问题。当我使用say firebug检查Span元素时,它不会突出显示页面中的任何区域,因此也可能是我们使用//Span的定位器不合适-我们有其他选择吗?您针对的是哪一个按钮?//Span[@id='btnAddYear']/button[包含(,'Add Year')]不起作用。。使用//span似乎不起作用。。就是看不见这个东西,即使它存在!