是否可能在另一个元素内找到元素? 如果我们有这样的html
<div>
<span>Some text 1 </span>
<p>Other text 1</p>
</div>
<div>
<span>Some text 2 </span>
<p>Other text 2</p>
</div>
<div>
<span>Some text 2 </span>
<p>Other text 2</p>
</div>
是否可以做这样的事情
IList<IWebElement> elements=driver.FindElements(By.TagName("div"));
for (int i = 0; i < elements.Count; i++)
{
string text= elements[i].FindElement(By.TagName("span")).Text;
}
我已经尝试了多次,在第二次迭代中,它总是从第一个元素中找到文本。
答案 0 :(得分:1)
您是否想在p
中使用span
和div
?
使用Xpath()
或CssSelector()
IList<IWebElement> div_childs = driver.FindElements(By.Xpath("//div/*"));
// or
//IList<IWebElement> div_childs = driver.FindElements(By.CssSelector("div *"));
foreach (var child in div_childs)
{
string text = child.Text;
string tag_name = child.TagName;
}
答案 1 :(得分:0)
使用CSS选择器,让它为您完成工作...
foreach (IWebElement element in Driver.FindElements(By.CssSelector("div > span")))
{
Console.WriteLine(element.Text);
}
这将找到所有DIV子级(>)的SPAN。