无法使用watir-webdriver单击按钮

时间:2013-08-29 15:44:54

标签: css selenium watir watir-webdriver

这是我的HTML:

<p class="actions">
  <input style="float: right" id="submit" type="submit" name="Create account" value="Update profile">
  <button name="cancel" style="padding: 10px 10px" onclick="window.close(); return false">Cancel</button>
  <button name="delete" style="padding: 10px 10px" onclick="window.location.href = 'https://88888.dev2.ext-dev.mysite.com/plugins/social/profile/delete?sessionKey=521f6a65e4b01c799ac48260&amp;webSocketIdentifier=521f6a65e4b01c799ac4825f'; return false">Delete account</button>
</p>

我用过:

delete_account=@browser.element(:css => "p.actions > delete").click

2 个答案:

答案 0 :(得分:2)

由于您使用的是Watir,因此除非没有其他解决方案,否则通常最好避免使用css和xpath。

你应该可以这样做:

@browser.button(:name => 'delete').click

如果段落是区分删除链接的重要部分,您可能需要执行以下操作:

@browser.p(:class => 'actions').button(:name => 'delete').click

如果你真的想使用css,我认为应该是:

@browser.element(:css => "p.actions > [name=delete]").click

@browser.element(:css => "p.actions > button[name=delete]").click

请注意&#34;删除&#34;是按钮的名称属性的值,而不是其类。

根据评论中的讨论,该元素也位于弹出浏览器窗口中。必须使用以下方式访问:

@browser.windows.last.use{ browser.button(:name => 'delete').click }

答案 1 :(得分:1)

如果您的HTML不包含以下html,那么您的CSS选择器是错误的;

<p class='actions>
    <delete></delete>
</p>