![](/img/trans.png)
[英]How to select a list item from a drop down by its value using Selenium Webdriver C#
[英]How to click an item from a list in Selenium WebDriver using C#?
嗨,我需要验证我要单击的项目是否有美元符号并且没有缺货。 因此,我使用了这种方法。如果列表中的第一项同时满足这两个条件,则可以正常工作,但是如果第一项没有美元符号,则它不会转到第二项并单击它,而是失败。 由于我是编程新手,所以我不知道自己是否在代码中犯了任何错误。 我该如何纠正? 谢谢。
码:
ReadOnlyCollection<IWebElement> listOfItems = driver.FindElements(By.CssSelector("ul[class='shelf-list tap-list search']>li"));
foreach (IWebElement item in listOfItems)
{
//To check if item is not sold out get the class attribute of item and check if empty
string className = item.GetAttribute("class");
Console.WriteLine("Classname:" + " " + className);
if (className.Equals(""))
{
//Item is available and now get text and check if it has $ sign
IWebElement itemWithDollarSign = driver.FindElement(By.CssSelector("div[class='item-preview-text']>div[class='price']"));
string ItemToChoose = itemWithDollarSign.Text;
Console.WriteLine("Text:" + " " + ItemToChoose);
if (ItemToChoose.Contains("$"))
{
//Choose the item that satifies both conditions
itemWithDollarSign.Click();
break;
}
}
}
情况1输出:如果项目同时满足两个条件
Classname:
text: $189
//显示类名为空,并进入循环。
情况2输出:如果第一个项目没有$
Classname:
text: Prices varies
Classname:
text: Prices varies
Classname:
text: Prices varies...
继续对页面上的30个项目重复相同的操作,而不是转到第二个项目。
内部的FindElement
似乎想要获取与循环item
相关的itemWithDollarSign
,但实际上似乎是静态的。
这个图书馆不是我的头等大事,但是可能是这样:
IWebElement itemWithDollarSign = item.FindElement(By.CssSelector("div[class='item-preview-text']>div[class='price']"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.