我无法在谷歌搜索后得到满意的答案。 那么你能指导我吗? 我有一个包含李,一个标签下面的div。 我能够通过它的类名找到使用CssSelector的div。 现在在这个div里我想用它的文本标签,然后点击它。 标签是贝洛:C#硒webdriver css选择器只有文本标签退出
<标签>注销< /标签>
如何做到这一点?
我有一个工作解决方案使用XPath和遍历div内的所有标签,但我无法使用CssSelector获取它。
我的解决方案:使用的foreach
IWebElement menu = CurrentDriver.FindElement(By.CssSelector("div[class='menu-panel right']"));
IWebElement logoutLabel = menu.FindElement(By.XPath("//label[text()='Sign Out']"));
或 :
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']"));
但这些都不工作。
非常感谢!这是一个很好的答案,你详细解释。通过进一步添加断点分析,我能够详细了解。我认为我使用foreach进行迭代的方法更适合我的需求。谢谢Arran!问候,rahoolm – rahoolm
这打开了我的眼睛为我的公司寻找东西。我知道jQuery为IDE工作,但是在编写C#代码时,我遇到了问题。通过XPath定位可以让我选择我可以看到的名字。现在,如果它在页面上移动,脚本不会中断!谢谢! – IamBatman