我有这个:
<div class="dhx_toolbar_btn def" title="">
<div>Interface</div>
</div>
并且想知道如何让Selenium点击它,就像我试过的那样:
//div[@class='dhx_toolbar_btn def' and contains(., 'Interface')]
和此:
css=.dhx_toolbar_btn def:contains('Interface')
但似乎根本不起作用,但它似乎与其他类似的div一起使用:
<td class="td_btn_txt">
<div class="btn_sel_text">Billing Interface</div>
</td>
感谢任何帮助。 感谢
的 的 **编辑**
我也尝试了这些,但都没有用,也没有返回任何错误:
//div[5]/div/div[5]/div[9]
//*[text()='Interface']
//*[normalize-space(text())='Interface']
//*[contains(text(), 'Interface')]
的 的 **编辑**
我也注意到,当我尝试这些最后4但是使用mouseDown而不是点击它完全按照它应该做的那样(让它看起来像鼠标在项目上,但不是点击它),所以我想知道为什么它会用mouseDown做它的意思,但是点击它什么都不做,甚至不会返回错误。
答案 0 :(得分:1)
答案 1 :(得分:1)
尝试使用xpath:
//div[@class=\"dhx_toolbar_btn def\"]/div
那个xpath你将使用文本“Interface”的div。如果div中有多个div,并且类为“dhx_toolbar_btn”,那么
//div[@class=\"dhx_toolbar_btn def\"]/div[text()="Interface"]
如果你有多个包含'Interface'的div,我会以编程方式构造Xpath并传入你正在寻找的确切文本,假设文本是静态的。
答案 2 :(得分:0)
好的,所以不是我想要它的方式,或者让它起作用,但它确实有:
<tr>
<td>waitForElementPresent</td>
<td>//div[@class='dhx_toolbar_btn def' and contains(., 'Interface')]</td>
<td></td>
</tr>
<tr>
<td>mouseDown</td>
<td>//*[text()='Interface']</td>
<td></td>
</tr>
<tr>
<td>mouseOver</td>
<td>//*[normalize-space(text())='Interface']</td>
<td></td>
</tr>
<tr>
<td>mouseDown</td>
<td>//*[text()='Interface']</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//div[5]/div/div[5]/div[9]</td>
<td></td>
</tr>
<tr>
<td>mouseOut</td>
<td>//div[5]/div/div[5]/div[9]</td>
<td></td>
</tr>
虽然我更喜欢更容易和更轻松的更简单的方法。