【发布时间】:2014-01-03 14:52:36
【问题描述】:
我在谷歌上搜索后无法得到满意的答案。 那么你能指导我吗? 我有一个包含 li,a,labels 下面的 div。 我可以通过类名使用 CssSelector 找到 div。 现在在这个 div 中,我想获得一个带有文本的标签,然后单击它。 标签如下:
怎么做?
我有一个使用 XPath 并遍历 div 内所有标签的工作解决方案,但我无法使用 CssSelector 获得它。
我的解决方案:
IWebElement menu = CurrentDriver.FindElement(By.CssSelector("div[class='menu-panel right']"));
IWebElement logoutLabel = menu.FindElement(By.XPath("//label[text()='Sign Out']"));
或 通过使用 foreach:
var coll = menu.FindElements(By.TagName("label"));
foreach (var label in coll)
{
if(label.Text.Trim() =="Sign Out")
{
Log("Sign out was found.");
label.Click();
break;
}
}
我尝试使用 CssSelector:
IWebElement logoutLabel = menu.FindElement(By.CssSelector(":contains('Sign Out')"));
IWebElement logoutLabel = menu.FindElement(By.CssSelector("label:contains('Sign Out')"));
IWebElement logoutLabel = menu.FindElement(By.CssSelector("label['Sign Out']"));
但这些都不起作用。
【问题讨论】:
标签: c# selenium css-selectors selenium-webdriver