Selenium - 如何使用包含在该按钮中的文本在弹出窗口中单击“确定”按钮

时间:2011-11-09 05:58:37

标签: selenium

以下代码显示在firebug中,用于我的应用程序弹出窗口中的OK按钮

<button id="ext-gen219" class="x-btn-text" type="button">
    &nbsp;&nbsp;OK&nbsp;&nbsp;
</button>

此处按钮ID是随机生成的,并且ok按钮的位置也无法识别。有没有办法点击按钮的文字?就像按钮包含一个名为OK的文本。

3 个答案:

答案 0 :(得分:4)

对于Selenium IDE或Selenium RC,xpath=//button[contains(., 'OK')]应该是一个很好的定位器。

答案 1 :(得分:0)

我的前提是弹出框的文字不一样,所以我推荐这样的东西:

List<IWebElement> dialogBox = driver.FindElements(By.Class("dialogBoxClass");
int buttonIndex = dialogBox.FindIndex(i => i.FindElement(By.Class("DisplayedTextElementClass").Text.Contains("some unique text here"));
dialogBox[buttonIndex].FindElement(By.ClassName("x-btn-text")).Click();

这会捕获所有对话框的父元素,然后解析每个对象以找到所需框的索引,然后单击正确对象中的“确定”按钮。

答案 2 :(得分:-1)

如果是提交按钮,此定位器css=input:submit[value="OK"]应该可以正常工作。如果是按钮元素,请css=button:contains("OK")