的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 =“搜索”(单引号)。

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

最佳答案

我将注入(inject)一段js以有信心解决此问题:

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

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 Selector上的click()在Selenium Webdriver中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13040719/

10-16 01:42