首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Selenium IDE,使用相同的类选择多个文本

Selenium IDE,使用相同的类选择多个文本
EN

Stack Overflow用户
提问于 2015-01-11 01:37:19
回答 3查看 328关注 0票数 0

我有一个页面,里面有很多使用同一个类的文本。我想选择并存储同一个类的所有文本。这个是可能的吗?感谢所有的建议和评论!

我有这样的HTML代码:

代码语言:javascript
复制
<p class="foo">Some sample text</p>
<p class="foo">Some more sample text</p>

我试过这样做:

代码语言:javascript
复制
<tr>
<td>storeText</td>
<td>//p[@class=foo']</td>
<td>var1</td>
</tr>

我希望var1是:

代码语言:javascript
复制
Some sample text
Some more sample text

或者,我是否需要设置一个while语句并分别收集每个语句?

本页讨论类似的练习,但使用Selenium for Python:Get the text from multiple elements with the same class in Selenium for Python?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-02-10 23:31:26

我没有尝试@bcar的答案,因为我不是javascript专家,我也不确定我能把答案放到IDE中。不过,我找到了另一条路。我发现文本存储在表中,所以我使用下面的代码来提取整个表(其中包括我需要的文本)。

代码语言:javascript
复制
<tr>
    <td>storeText</td>
    <td>//div/h2[text()=&quot;Elements and Performance Criteria&quot;]/following::table</td>
    <td>Content</td>
</tr>

现在我必须想出如何用

因为这是纯文本。另一个堆叠溢出的问题!谢谢。

票数 0
EN

Stack Overflow用户

发布于 2015-01-11 03:15:27

代码语言:javascript
复制
//gather all p[class=foo]
List<WebElement> ele = driver.findElements(By.cssSelector("p.foo"));

Iterator<WebElement> iter = ele.iterator();

// initialize array, map, whatever

While(iter.hasNext()) {
    // insert text into map
    // print to log
   // store in array
   //whatever you need
   var.add( iter.next().text() );
}
票数 0
EN

Stack Overflow用户

发布于 2021-07-16 09:14:57

非常简单:只需循环遍历存储的元素。无论何时使用find_elements_by_class_name,它都会返回selenium web元素的列表。因此,您只需使用循环进行迭代,如下所示。

代码语言:javascript
复制
names = driver.find_elements_by_class_name("_xEcR")
for i in names:
    print(i.text)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27883117

复制
相关文章

相似问题

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