首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >无法在Java中使用Selenium WebDriver选择按钮

无法在Java中使用Selenium WebDriver选择按钮
EN

Stack Overflow用户
提问于 2013-12-30 15:38:58
回答 2查看 1K关注 0票数 0

尝试使用Selenium WebDriver从网页的可折叠区域中选择按钮。我对WebDriver非常陌生,我对如何得到这个特殊的小怪物有问题。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <a href="#" class="btn new-fields-button" data-fields="&lt;div class='contributor-form form-inline form-nested'&gt; 
&lt;select id=&quot;video_item_contributors_attributes_39041920_role&quot; name=&quot;video_item[contributors_attributes]
[39041920][role]&quot;&gt;&lt;option value=&quot;Actor&quot;&gt;Actor&lt;/option&gt; &lt;option 
value=&quot;Director&quot;&gt;Director&lt;/option&gt; &lt;option value=&quot;Writer&quot;&gt;Writer&lt;/option&gt; 
&lt;option value=&quot;Producer&quot;&gt;Producer&lt;/option&gt;&lt;/select&gt; &lt;input class=&quot;input-small&quot; 
id=&quot;video_item_contributors_attributes_39041920_name&quot; name=&quot;video_item[contributors_attributes][39041920][name]&quot; 
placeholder=&quot;Name&quot; size=&quot;30&quot; type=&quot;text&quot; /&gt; &lt;a class='btn btn-danger delete-nested' 
data-destroy-id='destroy-contributor-toggle-'&gt; &lt;i class='ss-trash'&gt;&lt;/i&gt; &lt;/a&gt; &lt;/div&gt; " 
data-id="39041920"><i class="ss-plus"></i> Add Contributor</a>

这是一段代码(试图在这里将其分解为可读的部分),它描述了要单击的按钮,并直接从Chrome的“检查元素”视图中复制。有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-30 19:24:25

首先,您需要确保a元素不在iframe中。如果是,则必须使用driver.switchTo().frame("frameName")将上下文切换到框架。

然后,找到与a元素一致的唯一元素,以便能够识别它。下面是一些可以使用的xpath定位器示例。

要获得参考,请阅读XPath W3C推荐 -它提供了使用xpath所需的所有信息。

通过锚文本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
By.xpath("//a[text()=' Add Contributor']") 

在xpath中使用class

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
By.xpath("//a[@class='btn new-fields-button']") 

要进行部分匹配,可以使用contains()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
By.xpath("//a[contains(@class,'new-fields-button')]") 

还可以使用多个选择器,如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
By.xpath("//a[contains(@class,'new-fields-button') and contains(text(),'Add Contributor')]") 
票数 0
EN

Stack Overflow用户

发布于 2013-12-30 15:54:16

根据所提供的信息,您可以执行如下xpath搜索:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
WebElement button = webDriver.findElement(By.xpath("//a[@data-id='39041920']"));

不知道,如果数据id属性是唯一的还是不唯一的,因为您并没有真正告诉您的页面的问题。

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

https://stackoverflow.com/questions/20849418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文