button - css 选择器上的 click() 在 Selenium webdriver 中不起作用

标签 button selenium click css-selectors webdriver

HTML

<input class="button" type="button" onclick="$.reload('results')" value="Search">

我没有这个的 id 或名称。因此我在写
FirefoxDriver driver = new FirefoxDriver();
driver.get("http://....");
driver.findElement(By.cssSelector("input[value=Search]")).click();

但是 click() 没有发生。

试过了
driver.findElement(By.cssSelector(".button[value=Search]")).click();

试过了
value='Search'(单引号)。

这些选择器正在工作
.button[value=Search] {
padding: 10px;
}
input[value=Search] {
padding: 10px;
}

最佳答案

我会注入(inject)一段js来有信心解决这个问题:

首先使用 DOM 定位元素(在 firebug 中验证):
locating

public void jsClick(){

        JavascriptExecutor js = (JavascriptExecutor) driver;
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("document.getElementsByTagName('button')[0].click();");
        js.executeScript(stringBuilder.toString());
    }
jsClick();

从你的元素的回顾来看,它就像:
....
stringBuilder.append("document.getElementsByTagName('input')[0].click();");
....

请注意:document.getElementsByTagName('input')返回一个 DOM 元素数组。并正确索引它,例如document.getElementsByTagName('input')[0], document.getElementsByTagName('input') 1 , document.getElementsByTagName('input')[2]....
等你将能够找到你的元素。

希望这对您有所帮助。
问候。

关于button - css 选择器上的 click() 在 Selenium webdriver 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13040719/

相关文章:

asp.net - 如何在 ASP.NET Web 应用程序中使用 .psd 分层按钮

python - 使用Python + Selenium进行基于 Electron 的应用测试

c# - 使用 Selenium WebDriver 获取默认下载文件夹路径

java - Selenium 网络驱动程序 : Element Not Visible Exception

javascript - 使用 jquery 定位与 <li> 内的类的链接

javascript - 结合悬停和点击功能(jQuery)?

php - 使用 PHP 对 MYSQL 表进行排序

WPF 更改鼠标悬停和按下的按钮样式

html - css 按钮字体大小不起作用

c++ - C++切换以按住鼠标左键吗?