以下html代码会弹出一个以添加产品。试图找到可在selenium中工作的xpath或css,允许点击“添加”按钮添加新产品。
我试图使用这个xpath // div [18] / div [2] / div /按钮,它只适用于一个会话。当您关闭浏览器并重新打开时,xpath上方不起作用。那么,我们如何编写这样一个xpath,在这种情况下div [18]不必传递div [number]。
<div style="height: auto; min-height: 104px; width: auto;" class="dialog ui-dialog-content ui-widget-content">
<fieldset><legend>search</legend>
<div id="nameorids">
<input type="radio">name
<input type="radio">id
</fieldset>
<div style="clear: both; padding-top: 5px; float: right;"><button class="add">add</button></div></div>
答案 0 :(得分:0)
首先,此HTML无效:在关闭字段集之前,nameorids
div未关闭。错字?
如果您可以影响HTML,请尝试将id或class属性添加到外部div,以便您可以使用css选择器来定位它们。例如。如果你可以使HTML看起来像
<div id="foo" ...
然后您可以使用选择器#foo button.add
。
答案 1 :(得分:0)
同一节点有许多不同的可能XPath。在这种情况下,这是唯一一个类“添加”的按钮吗?在那种情况下:
//button[contains(concat(' ', @class, ' '), ' add ')]
只会获得该按钮。只有一小段HTML就不是很有用了。
如果您有权访问该页面,并且可以运行Chrome浏览器,请试用我的扩展程序here。安装后重新启动Chrome,然后按下右键单击并选择PsychoXPath -> Element (Short)
。这将尝试找到此元素的唯一路径,并将其复制到剪贴板和控制台。
答案 2 :(得分:0)
css将是button.add
selenium.click("css=button.add");