Selenium IDE,使用相同的 class 选择多个文本
Selenium IDE, selecting muliple text using same class
我有一个包含大量文本的页面使用相同的 class。我想要 select 并使用相同的 class 存储所有文本。这可能吗?感谢所有建议和评论!
我有 HTML 这样的代码:
<p class="foo">Some sample text</p>
<p class="foo">Some more sample text</p>
我试过这个:
<tr>
<td>storeText</td>
<td>//p[@class=foo']</td>
<td>var1</td>
</tr>
我预计 var1 是:
Some sample text
Some more sample text
或者,我是否需要设置一个 while 语句并单独收集每个语句?
此页面讨论了类似的练习,但使用 Selenium Python:Get the text from multiple elements with the same class in Selenium for Python?
//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() );
}
我没有尝试@bcar 的答案,因为我不是 javascript 专家,我也不确定我能否将答案放入 IDE。但是我找到了另一种方法。我发现文本存储在 table 中,因此我使用以下代码提取整个 table(其中包括我需要的文本)。
<tr>
<td>storeText</td>
<td>//div/h2[text()="Elements and Performance Criteria"]/following::table</td>
<td>Content</td>
</tr>
现在我必须弄清楚如何用
替换新行,因为这是纯文本。 Whosebug 的另一个问题!谢谢
很简单:
只需遍历存储的元素。
每当您使用 find_elements_by_class_name
时,它都会 returns 硒网络元素列表。因此你只需要像这样循环迭代。
names = driver.find_elements_by_class_name("_xEcR")
for i in names:
print(i.text)
我有一个包含大量文本的页面使用相同的 class。我想要 select 并使用相同的 class 存储所有文本。这可能吗?感谢所有建议和评论!
我有 HTML 这样的代码:
<p class="foo">Some sample text</p>
<p class="foo">Some more sample text</p>
我试过这个:
<tr>
<td>storeText</td>
<td>//p[@class=foo']</td>
<td>var1</td>
</tr>
我预计 var1 是:
Some sample text
Some more sample text
或者,我是否需要设置一个 while 语句并单独收集每个语句?
此页面讨论了类似的练习,但使用 Selenium Python:Get the text from multiple elements with the same class in Selenium for Python?
//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() );
}
我没有尝试@bcar 的答案,因为我不是 javascript 专家,我也不确定我能否将答案放入 IDE。但是我找到了另一种方法。我发现文本存储在 table 中,因此我使用以下代码提取整个 table(其中包括我需要的文本)。
<tr>
<td>storeText</td>
<td>//div/h2[text()="Elements and Performance Criteria"]/following::table</td>
<td>Content</td>
</tr>
现在我必须弄清楚如何用
替换新行,因为这是纯文本。 Whosebug 的另一个问题!谢谢
很简单:
只需遍历存储的元素。
每当您使用 find_elements_by_class_name
时,它都会 returns 硒网络元素列表。因此你只需要像这样循环迭代。
names = driver.find_elements_by_class_name("_xEcR")
for i in names:
print(i.text)