首先是规范,我正在用 java 编写 Selenium Webdriver 测试,用于主要用 ExtJS 编写并在 firefox 浏览器 v14 上运行的应用程序。有趣的是,Selenium 可以找到我想要单击的元素,但单击似乎没有执行,或者如果它正在执行,则不会发生所需的结果(出现弹出窗口)。我还在 Selenium IDE 中验证了我正在寻找的元素(我通过 Xpath 找到的 span 元素)存在,但是在 Selenium IDE 中我遇到了无法单击它的相同问题。
如果我手动单击按钮,则会出现弹出窗口,询问我要上传的文件。我还尝试了其他元素,例如跨度的父“按钮”元素和父“em”元素以及父“div”元素,但都没有运气。
让我感到沮丧的是,我已经为这个应用程序编写了几个星期的 Selenium 测试,并且总是能够使用这种方法来单击按钮,而对于这个特定的按钮,它不再起作用。
WebElement uploadButton = driver.findElement(By.xpath("//span[contains(text(), 'Upload Popup')]"));
uploadButton.click();
编辑1:认为按钮本身的代码可能会有所帮助
<button id="filefield-1158-buttonEl-btnEl" class="x-btn-center" autocomplete="off" role="button" hidefocus="true" type="button" style="background-color: transparent;">
注意id是ExtJS创建的动态id