click() on css Selector not working in Selenium webdriver

button, click, css-selectors, selenium, webdriver

Solution

i would inject piece of js to be confident in resolving this issue:

first of all locate element using DOM (verify in firebug):

public void jsClick(){

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

from the retrospective of your element it be like:

....
stringBuilder.append("document.getElementsByTagName('input')[0].click();");
....

Please, note: `document.getElementsByTagName('input')` returns you an array of DOM elements. And indexing it properly e.g. document.getElementsByTagName('input')[0], document.getElementsByTagName('input')1, document.getElementsByTagName('input')[2].... ,etc you will be able to locate your element.

Hope this helps you. Regards.

Problem

HTML ``` <input class="button" type="button" onclick="$.reload('results')" value="Search"> ``` I don't have an id or name for this . Hence am writing ``` FirefoxDriver driver = new FirefoxDriver(); driver.get("http://...."); driver.findElement(By.cssSelector("input[value=Search]")).click(); ``` But click() is not happening. Tried driver.findElement(By.cssSelector(".button[value=Search]")).click(); Tried value='Search' (single quotes). these Selectors are working in ``` .button[value=Search] { padding: 10px; } input[value=Search] { padding: 10px; } ```

Original source