首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在css Selector not working in Selenium webdriver上单击()

在css Selector not working in Selenium webdriver上单击()
EN

Stack Overflow用户
提问于 2012-10-24 07:12:01
回答 4查看 20.2K关注 0票数 11

HTML

代码语言:javascript
复制
<input class="button" type="button" onclick="$.reload('results')" value="Search">

我不知道它的id和名字。因此我在写

代码语言:javascript
复制
FirefoxDriver driver = new FirefoxDriver();
driver.get("http://....");
driver.findElement(By.cssSelector("input[value=Search]")).click();

但是click()并没有发生。

试用过driver.findElement(By.cssSelector(".buttonvalue=Search")).click();

尝试值=‘搜索’(单引号)。

这些选择器在

代码语言:javascript
复制
.button[value=Search] {
padding: 10px;
}
input[value=Search] {
padding: 10px;
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-10-24 20:49:50

为了有信心解决这个问题,我会注入一段js:

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

代码语言:javascript
复制
public void jsClick(){

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

从你的元素回顾来看,它是这样的:

代码语言:javascript
复制
....
stringBuilder.append("document.getElementsByTagName('input')[0].click();");
....

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

希望这对你有帮助。致以问候。

票数 2
EN

Stack Overflow用户

发布于 2013-10-16 17:53:01

请使用以下代码。

driver.findElement(By.cssSelector("inputvalue=\"Search\"")).click();

这对我很管用。并确保名称为"Search",因为它区分大小写。

谢谢

票数 1
EN

Stack Overflow用户

发布于 2012-11-01 21:35:20

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13040719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档