selenium xpath查询 var value=selenium.GetXpathCount(“//div[contains(@id,'spnPriceDetails')”); int clickNo=1; 对于(var j=1;j

selenium xpath查询 var value=selenium.GetXpathCount(“//div[contains(@id,'spnPriceDetails')”); int clickNo=1; 对于(var j=1;j,xpath,selenium,Xpath,Selenium,您的代码没有指定后面的链接,它每次都执行相同的搜索,检索所有25个匹配项”//div[contains(@id,'spnPriceDetails')]”,然后单击结果匹配集中的第一个。您需要将迭代器变量添加到搜索字符串中,如下所示: var value = selenium.GetXpathCount("//div[contains(@id,'spnPriceDetails')]"); int clickNo = 1; for (var j = 1; j <= value; j++) {

您的代码没有指定后面的链接,它每次都执行相同的搜索,检索所有25个匹配项”//div[contains(@id,'spnPriceDetails')]”,然后单击结果匹配集中的第一个。您需要将迭代器变量添加到搜索字符串中,如下所示:

var value = selenium.GetXpathCount("//div[contains(@id,'spnPriceDetails')]");
int clickNo = 1;
for (var j = 1; j <= value; j++)
{
    if (clickNo == j)
    {

        selenium.Click("//div[contains(@id,'spnPriceDetails')]");
    }
    clickNo = clickNo + 1;
}

for(var j=1;j我会尝试在xpath表达式中使用Position。
我创建了一个fluent Xpath库,可能会有所帮助:

代码类似于:

for (var j = 1; j <= value; j++)
{
   selenium.Click("(//div[contains(@id,'spnPriceDetails')])[" + j + "]");
}

for(int i=1;我认为这就是问题所在,但在Selenium文档中查找详细信息花了很长时间。谢谢你的回复,但我的问题仍然没有被发现。对于这个特定元素,我们已经生成了id.eid=“spnpricedtails30 IRCMPTZ”其中spnPriceDetails是静态的,其他部分是动态的。我发现了使用该id的元素数,即25,但当尝试单击第二个元素时,它总是先单击,我不会使用整个id,因为每次搜索我们都会得到不同的结果和不同的动态id。所以我正在寻找一些类似于相同w概念的索引ay我们在QTP中使用,但在selenium中有Xpath、CSS,它不与div一起工作……因此,如果你像我在上面的帖子中所示那样将索引添加到搜索字符串中,它是否每次都会继续单击第一个链接?当我尝试使用上面的链接时,你建议我得到:错误:无效Xpath[2]://div[contains(@id,'pnlminxprice'))[1],在我的例子中,position()=某物或您建议的上述内容都不起作用…:(:(正因为如此,我在过去两天中一直坚持下去…是从xpath语句中去掉开头的括号,还是在复制时遗漏了它?应该是:(//div[contains(@id,'pnlminxprice'))[1]
for (int i = 1; i <= value; i++)
{
    selenium.Click(XPathFinder.Find.Tag("div").With.Attribute("id").
    Containing("spnPriceDetails").And.Position(i).ToXPathExpression());
}
for (int i = 1; i <= value; i++)
{
    selenium.Click(string.Format("//div[contains(@id,'spnPriceDetails') and position()={0}]",i));     }