Selenium webdriver: как найти элемент в DOM на основе пользовательского атрибута
Как я могу найти элемент в DOM на основе пользовательского атрибута?
Например:
Атрибуты DOM отсутствуют в HTML-представлении. Используя DOM-инспектор, я могу определить уникальный атрибут Custom.
driver.findElement(By.id("SimpleSearch:dIndicesGrid:1:Value")).getAttribute("_celltype");
Здесь _celltype
- это настраиваемый атрибут. Этот атрибут не отображается в виде HTML.
Ответы
Ответ 1
Вам нужно будет найти элемент по xpath.
Ниже будет найден любой элемент, у которого есть атрибут _celltype со значением 'celltype':
driver.findElement(By.xpath("//*[@_celltype='celltype']"))
Если вы знаете, какой тип элемента вы можете сделать более конкретным. Например, если вы знаете, что это теги div, выполните следующие действия:
driver.findElement(By.xpath("//div[@_celltype='celltype']"))
Ответ 2
XPath - это зло, вы можете использовать это вместо
By.CssSelector("[_celltype='celltype']");
Ответ 3
Найти элемент по xPath:
WebElement element = driver.findElement(By.xpath("xpath_link"));
xpath_link = //*[@_celltype='celltype']; // This is sample xpath;
System.out.println(element.getText());
Это получит текст поля celltype и отобразит его значение.