如何根據自定義屬性在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