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

时间:2013-08-05 13:01:03

标签: 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" 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个按钮,但可能会有更多<button onclick="javascript:ShowHideAddYear(i,j)..>

css=#btnAddYear > button//span[@id=’btnAddYear’]/button[text()=’Add Year’]等常见定位器不起作用。有人可以帮助编写一个唯一选择按钮的可靠定位器吗?

3 个答案:

答案 0 :(得分:1)

感谢您的输入人员,我尝试了各种各样的事情,例如tab to元素和触发“enter”事件等但没有任何效果。这是Selenium IE Driver的一个问题。 http://code.google.com/p/selenium/issues/detail?id=5142

答案 1 :(得分:0)

我没有在您提供的HTML中看到“添加年份”文字。如果将其更改为// [[id ='btnAddYear'] /按钮[1],是否有效?

答案 2 :(得分:0)

这个怎么样?

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