点击()on css选择器不工作在Selenium webdriver [英] click() on css Selector not working in Selenium webdriver
问题描述
< input class =buttontype =buttononclick =$。reload ')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]))。click();
尝试$ b $
这些选择器在
中工作code> .button [value = Search] {
padding:10px;
}
input [value = Search] {
padding:10px;
}
以确保解决此问题:
首先使用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] ....
等你将能够找到你的元素。
这有助于你。
谨慎。
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;
}
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.
这篇关于点击()on css选择器不工作在Selenium webdriver的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!