【发布时间】:2016-12-20 18:47:07
【问题描述】:
我有复杂的 DOM 结构,HTML id 属性的值动态变化。当我尝试提取“自定义”属性的值时,Selenium 返回“null”。
我需要提取parentId的值(即我需要“qqq-bbb”,每次reload都不一样)
//Selenium(C#):
// evaluates to "null"
string someStringName = someIWebElement.GetAttribute("parentId");
//HTML tag (example):
// in Chrome the parentId is visible and unique
<g id="333-aaa" parentId="qqq-bbb">
【问题讨论】:
-
您在定位元素时遇到问题吗?或者只是提取
parentId? -
提取 parentId 值的问题(我尝试分配返回值的字符串,在示例中“someStringName”在评估代码后仍然为“null”
-
确保您定位到了正确的元素,也许有更多的元素与您使用的定位器相同,并且您找到了其中一个。
-
尝试打印
someIWebElement.GetAttribute("outerHTML");并查看元素的外观。我的猜测是你没有你期望的元素。 -
不,元素是唯一的。它有一个 id,对应于当前元素 id 值(在 Chrome f12 控制台中视觉验证),但是元素不能帮助定位元素,因为在下一次重新加载期间 id 将不同 - 每个会话动态分配)。 .. 是的,HTML 标记是
,即所选 IWebElement.. 的最外层标记必须连接到“自定义”tahs 的可见性(现在只是猜测,但继续调查)。任何已知的解决方法、想法或技巧将不胜感激
标签: c# selenium extraction custom-tag