以下代码显示在firebug中,用于我的应用程序弹出窗口中的OK按钮
<button id="ext-gen219" class="x-btn-text" type="button">
OK
</button>
此处按钮ID是随机生成的,并且ok按钮的位置也无法识别。有没有办法点击按钮的文字?就像按钮包含一个名为OK的文本。
答案 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")
。