如何根据自定义属性在DOM中查找元素?Selenium webdriver:如何根据自定义属性在DOM中查找元素
例如:
DOM属性不存在于HTML视图中。使用DOM检查器我可以识别出Custom属性是唯一的。
driver.findElement(By.id("SimpleSearch:dIndicesGrid:1:Value")).getAttribute("_celltype");
这里_celltype
是自定义属性。该属性在HTML视图中不可见。
如何根据自定义属性在DOM中查找元素?Selenium webdriver:如何根据自定义属性在DOM中查找元素
例如:
DOM属性不存在于HTML视图中。使用DOM检查器我可以识别出Custom属性是唯一的。
driver.findElement(By.id("SimpleSearch:dIndicesGrid:1:Value")).getAttribute("_celltype");
这里_celltype
是自定义属性。该属性在HTML视图中不可见。
您将不得不通过xpath找到元素。如果你知道它是什么类型的元素,你可以使其更加具体
driver.findElement(By.xpath("//*[@_celltype='celltype']"))
:
下会发现有_celltype属性与价值“单元格类型”的任何元素。例如,如果你知道他们是div标签,这样做:
driver.findElement(By.xpath("//div[@_celltype='celltype']"))
通过XPATH查找元素:
WebElement element = driver.findElement(By.xpath("xpath_link"));
xpath_link = //*[@_celltype='celltype']; // This is sample xpath;
System.out.println(element.getText());
这将让“格类型”字段的文本,并显示它的价值。
XPath是邪恶的,你可以用这个代替
By.CssSelector("[_celltype='celltype']");
CssSelector更可取。读取也更容易。 – 2015-03-10 18:35:27
它也更快。我正在运行一个应用程序,其中XPath基本上比其他选择器慢6倍。由于我必须多次运行此操作,因此这会对我的应用程序的总运行时间产生巨大影响。 – 2016-08-09 17:46:53
,但我需要得到_celltype值。 – user1563042 2012-07-31 07:26:31
对不起,我不确定我了解你的目标。你是否试图根据它的_celltype属性找到一个元素,或者你是否想要找到元素的_celltype属性值?对我来说,前者是由这个答案覆盖的,而后者是由你的问题中的代码覆盖的。你能澄清你在找什么,也许给一个示例HTML和你试图从中获得什么价值/元素? – 2012-07-31 12:56:40
对不起,我试图问如何阅读Web元素的自定义DOM属性(_celltype)。 – user1563042 2012-08-13 11:28:15