C# 如何定位具有相同跨度类的图元?

C# 如何定位具有相同跨度类的图元?,c#,class,selenium,element,locate,C#,Class,Selenium,Element,Locate,在一个表中有如下多个元素:0。>0

在一个表中有如下多个元素:
0
。>0<值是一个公式值,每次都会更改。从HTML中查找以下元素的最佳方法是什么:

<td class="alignLeft label">Initial</td>
<td class="alignRight readOnly">
<span class="currency"> 0</span>
</td>
<td></td>
首字母
0
另一个元素位于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>
首字母
0
0
这里还有一个:

<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>
首字母
0
0
0

谢谢。

您需要这样做:

// 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
}
这将返回currency类的所有元素。如果您想更具体一些,即:您只需要使用currency类的span元素,您需要使用
OpenQA.Selenium.Support
包并执行
ByAll

var byAll = new OpenQA.Selenium.Support.PageObjects.ByAll(new By[] 
            { 
                By.ClassName("currency"), 
                By.TagName("span") 
            });

或者只需在第一个示例中选中
element.TagName

您已经尝试过一些代码了吗?您想全部获取还是只获取第一个,或者确切地说是什么?是否有类似的多个跨距?你能把身份证放在上面吗?你怎么知道你想要哪一个?附近有标签或其他文字吗?如果是,请张贴相关的HTML。您尝试了什么代码,结果如何?包括错误消息或代码未能完成任务的原因。如果必须猜测,您正在尝试获取span元素的文本值,在本例中为
0
。如果这就是您正在做的,您将找到span
IWebElement
,然后您将调用该
IWebElement
上的
GetText()
。这是一个疯狂的猜测,如果可以的话,请澄清你的问题。