如何定位跨度相同class的元素?
How to locate an element with the same span class?
在 table 中有多个这样的元素:<span class="currency"> 0</span>
。 > 0< 值是每次更改的公式值。从 HTML 中找到以下元素的最佳方法是什么:
<td class="alignLeft label">Initial</td>
<td class="alignRight readOnly">
<span class="currency"> 0</span>
</td>
<td></td>
另一个元素位于 HTML 的这一部分:
<td class="alignLeft label">Initial</td>
<td class="alignRight readOnly">
<span class="currency"> 0</span>
</td>
<td></td>
<td class="alignRight readOnly">
<span class="currency"> 0</span>
</td>
<td></td>
这里还有一个:
<td class="alignLeft label">Initial</td>
<td class="alignRight readOnly">
<span class="currency"> 0</span>
</td>
<td></td>
<td class="alignRight readOnly">
<span class="currency"> 0</span>
</td>
<td></td>
<td class="alignRight readOnly">
<span class="currency"> 0</span>
</td>
谢谢。
你需要做这样的事情:
// this will return a list containing all elements with the currency class
var currencyElements = driver.FindElements(By.ClassName("currency"));
foreach (var element in currencyElements)
{
// access each individual element one by one
if (element.Text == "0")
// do something
}
这将 return 货币为 class 的所有元素。如果您想更具体一点,即:您只想要具有货币 class 的 span 元素,您将需要使用 OpenQA.Selenium.Support
包并执行 ByAll
:
var byAll = new OpenQA.Selenium.Support.PageObjects.ByAll(new By[]
{
By.ClassName("currency"),
By.TagName("span")
});
或者只检查第一个示例中的 element.TagName
。
在 table 中有多个这样的元素:<span class="currency"> 0</span>
。 > 0< 值是每次更改的公式值。从 HTML 中找到以下元素的最佳方法是什么:
<td class="alignLeft label">Initial</td>
<td class="alignRight readOnly">
<span class="currency"> 0</span>
</td>
<td></td>
另一个元素位于 HTML 的这一部分:
<td class="alignLeft label">Initial</td>
<td class="alignRight readOnly">
<span class="currency"> 0</span>
</td>
<td></td>
<td class="alignRight readOnly">
<span class="currency"> 0</span>
</td>
<td></td>
这里还有一个:
<td class="alignLeft label">Initial</td>
<td class="alignRight readOnly">
<span class="currency"> 0</span>
</td>
<td></td>
<td class="alignRight readOnly">
<span class="currency"> 0</span>
</td>
<td></td>
<td class="alignRight readOnly">
<span class="currency"> 0</span>
</td>
谢谢。
你需要做这样的事情:
// this will return a list containing all elements with the currency class
var currencyElements = driver.FindElements(By.ClassName("currency"));
foreach (var element in currencyElements)
{
// access each individual element one by one
if (element.Text == "0")
// do something
}
这将 return 货币为 class 的所有元素。如果您想更具体一点,即:您只想要具有货币 class 的 span 元素,您将需要使用 OpenQA.Selenium.Support
包并执行 ByAll
:
var byAll = new OpenQA.Selenium.Support.PageObjects.ByAll(new By[]
{
By.ClassName("currency"),
By.TagName("span")
});
或者只检查第一个示例中的 element.TagName
。