我正在使用C#和Selenium Webdriver,我正在尝试在我的html代码中找到一个div
元素,如下所示:
<div class="x-grid-cell-inner" style="text-align: left;" unselectable="on">
phys_tag_desc
</div>
我找不到使用Selenium Webdriver搜索div
元素值的方法。我已经搜索过这个网站并查看了Selenium Webdriver文档,但找不到任何内容。
答案 0 :(得分:3)
如果文本值是唯一的,那么解决方案很简单。试试下面的xpath:
//div[text()='phys_tag_desc']
如果文字不完全匹配。请尝试以下方法:
//div[contains(text(),'phys_tag_desc')]
答案 1 :(得分:2)
我有两种方法。 方式2更复杂但更有效。
方式1;
你可以循环所有的div并寻找一些等于
示例:
foreach(HtmlElement o in webbrowser.Document.GetElementByTagName("div"))
{
HtmlElement yourElement;
if(o.GetAttribute("class")=="x-grid-cell-inner"&&o.GetAttribute("style")=="text-align: left;")
{
yourElement=o;
break;
}
DoSomethingWith(yourElememt);
}
另一种方式是跟随元素路径; 您可以找到具有ID的close元素 例如:
<div id="element">
<div>content..</div>
<div>
<div class="x-grid-cell-inner" style="text-align: left;" unselectable="on">
phys_tag_desc
</div>
</div>
</div>
此示例中具有id的最接近元素是
<div id="element">
你元素的父元素是2. id =“element”div的子元素 你可以得到它并按照这样的路径
yourElement = webbrowser.Document.GetElementById("element").Children[1].Children[0];
答案 2 :(得分:0)
在其他情况下,您可以使用 XPATH 布尔运算符。 试试下面的 xpath :
By.XPath("//div[contains(@class,'*x-grid-cell-inner*') and contains(@unselectable, '*on*') and contains(text(),'*phys_tag_desc*')]")
再见