如何在Selenium中获取WebElement的HTML代码
我是测试的新手,所以如果我的问题听起来有些重要,我会提前道歉。
我正在使用Selenium和Java来编写测试。
我知道webElement.getAttribute("innerHTML");
给我带来innerHTML,例如下面的元素:
它返回:
但我需要一些东西给我带来WebElement“a”的内在属性,如下所示:
href="#" class="ui-dialog-titlebar-close ui-corner-all" role="button" style="position: absolute; border-radius: 0px 0px 4px 4px;"
如果你想要元素本身的HTML,你可以使用
webElement.getAttribute("outerHTML");
它将返回元素本身的HTML以及所有子元素。 我不确定这是不是你想要的。 我认为没有办法只获取所选元素的HTML。
webElement.getAttribute("href"); webElement.getAttribute("class"); . . .
或者全部搞定:
Object[] attr = ((JavascriptExecutor)seleniumdriver).executeScript("return arguments[0].attributes);", webElement);
试试.getAttribute("innerHTML");
函数以字符串forms提取源
示例代码:
String source = driver.findElement(By.xpath("/html/body/script[6]")).getAttribute("innerHTML");
您可以读取innerHTML属性以获取元素内容的来源或使用当前元素获取源的outerHTML。
示例: – 现在假设您的元素如下所示
A B
内部元素输出
A B
外部元素输出
A B
实况示例: –
您将在下面找到根据不同绑定所需的语法。 根据需要将innerHTML
更改为outerHTML
。
python:
element.get_attribute('innerHTML')
Java的:
elem.getAttribute("innerHTML");
C#:
element.GetAttribute("innerHTML");
ruby:
element.attribute("innerHTML")
JS:
element.getAttribute('innerHTML');
如果您希望整页HTML使用以下代码: –
driver.getPageSource();
如果我们有这个:
我们需要获得“a”的所有属性,这将是:
href="#" class="ui-dialog-titlebar-close ui-corner-all" role="button" style="position: absolute; border-radius: 0px 0px 4px 4px;"
我们可以使用这段代码:
webElement.getAttribute("outerHTML").split(">")[0]
其中webElement是“a”。
或者更确切地说:
String s = we.getAttribute("outerHTML"); s = s.substring(2, s.indexOf(">"));