Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用C#在Selenium WebDriver中单击列表中的项目?_C#_Selenium_Selenium Webdriver - Fatal编程技术网

如何使用C#在Selenium WebDriver中单击列表中的项目?

如何使用C#在Selenium WebDriver中单击列表中的项目?,c#,selenium,selenium-webdriver,C#,Selenium,Selenium Webdriver,嗨,我需要确认我要点击的物品是否有美元符号,并且没有缺货。所以我使用了这个方法。如果列表中的第一个项目同时满足这两个条件,这个方法就可以了,但是如果第一个项目没有美元符号,它就不会转到第二个项目并单击它,而是失败了。由于我是编程新手,我不知道我是否在代码中犯了任何错误。 我怎样才能纠正这个问题?谢谢 代码: //显示classname为空且已进入循环 案例2输出:如果第一项没有$ Classname: text: Prices varies Classname: text: Prices var

嗨,我需要确认我要点击的物品是否有美元符号,并且没有缺货。所以我使用了这个方法。如果列表中的第一个项目同时满足这两个条件,这个方法就可以了,但是如果第一个项目没有美元符号,它就不会转到第二个项目并单击它,而是失败了。由于我是编程新手,我不知道我是否在代码中犯了任何错误。 我怎样才能纠正这个问题?谢谢

代码:

//显示classname为空且已进入循环

案例2输出:如果第一项没有$

Classname:
text: Prices varies
Classname:
text: Prices varies
Classname:
text: Prices varies...

对页面上的30个项目重复相同的操作,而不是转到第二个项目。

内部
FindElement
似乎希望获得与循环
项目相关的
项目,但实际上它似乎是静态的

这个图书馆不是我的面包和黄油,但这可能是它吗:

IWebElement itemWithDollarSign = item.FindElement(By.CssSelector("div[class='item-preview-text']>div[class='price']"));

我会在“string className=item.GetAttribute…”行上放置一个断点,并确保它满足以下if语句。是的,我尝试在不同的位置使用console.writeline来检查它是否将类名设为空,以及它是否为$获取文本和验证。我已经更新了使用打印和文本输出的代码。我可能没有正确读取您的代码,但它出现在行中,
driver.findelelement(By.CssSelector(“div[class='item-preview-text']>div[class='price'])从不更改,因此它将始终找到满足条件的相同第一项。是的,它实际上再次查找相同的项。但根据foreach循环,列表中的每个项目都不一样,请查找此代码。因为对于列表中的所有30项,这是查找$sign的代码。你认为那时候foreach没有被执行吗?你能告诉我其他的方法来写这个概念吗?哇,太棒了。我的代码现在可以工作了。它选择第二项。非常感谢你。我知道它应该和物品有关,但不知道这是怎么做的。再次感谢。
Classname:
text: Prices varies
Classname:
text: Prices varies
Classname:
text: Prices varies...
IWebElement itemWithDollarSign = item.FindElement(By.CssSelector("div[class='item-preview-text']>div[class='price']"));