点击()对CSS选择器中硒的webdriver不工作(click() on css Selector

2019-07-02 10:37发布

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();

但点击()没有发生。

试图driver.findElement(By.cssSelector() “按钮[值=搜索]。”)点击();

试过价值=“搜索”(单引号)。

这些选择在工作

.button[value=Search] {
padding: 10px;
}
input[value=Search] {
padding: 10px;
}

Answer 1:

我会注入一块JS的是解决此问题的信心:

首先,使用DOM(验证萤火)定位元件:

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( '输入')[0],document.getElementsByTagName( '输入') 1 ,document.getElementsByTagName( '输入')[2] ....等你将能够定位你的元素。

希望这可以帮助你。 问候。



Answer 2:

请使用下面的代码。

driver.findElement(By.cssSelector( “输入[值= \” 搜索\ “]”))点击();

这个对我有用。 并确保该名称是“搜索”,怎么把它是区分大小写。

谢谢



Answer 3:

你确定使用这个CSS选择器( input[value=Search]你的页面只有一个结果上)?



Answer 4:

单引号中丢失了你的代码中,[数值=搜索]应为[value =“搜索”]被替换。

首先你要检查如果u使用的是选择将工作或不..

如果您使用的镀铬或FF,您可以按照这些步骤,

  1. 走到哪里按钮(被点击)存在的页面,

  2. 在以下开放Web控制台和类型,点击进入..

    $( “输入[值= '搜索']”)

要么

$("input[value='Search'][type='button']")

要么

$("input[value='Search'][type='button'].button")

你会得到可使用此选择访问元素的列表,如果该列表仅包含一个元素(按钮,你要点击),那么这个选择是有效的为您use..otherwise u'l不得不尝试一些其他的选择..

如果上述任何选择的是有效的,u'l必须相应地改变你的代码..

driver.findElement(By.cssSelector("input[value='Search'][type='button'].button")).click();


文章来源: click() on css Selector not working in Selenium webdriver