如何获取硒中WebElement的HTML代码

我是测试新手,所以如果我的问题听起来有点主要,我提前道歉。

我正在使用Selenium和Java来编写测试。

我知道这给我带来了innerHTML,例如下面的元素:webElement.getAttribute("innerHTML");

<a href="#" class="ui-dialog-titlebar-close ui-corner-all" role="button" style="position: absolute; border-radius: 0px 0px 4px 4px;">
    <span class="ui-icon ui-icon-closethick">close</span>
</a>

它返回:

<span class="ui-icon ui-icon-closethick">close</span>

但是我需要一些东西来给我带来WebElement“a”的内部属性,如下所示:

href="#" class="ui-dialog-titlebar-close ui-corner-all" role="button" style="position: absolute; border-radius: 0px 0px 4px 4px;"

答案 1

如果你想要元素本身的HTML,你可以使用

webElement.getAttribute("outerHTML");

它将返回元素本身的 HTML 以及所有子元素。我不确定这是否正是你想要的。我不认为有一种方法可以只获取所选元素的HTML。


答案 2

您可以读取 innerHTML 属性来获取元素内容的源,或者读取具有当前元素的源的 outerHTML。

示例 :- 现在假设您的元素如下所示

<tr id="myRow"><td>A</td><td>B</td></tr>

内部元件输出

<td>A</td><td>B</td>

外部元素输出

<tr id="myRow"><td>A</td><td>B</td></tr>

活的例子 :-

http://www.java2s.com/Tutorials/JavascriptDemo/f/find_out_the_difference_between_innerhtml_and_outerhtml_in_javascript_example.htm

您将在下面找到根据不同绑定需要的语法。根据需要将 更改为 。innerHTMLouterHTML

蟒:

element.get_attribute('innerHTML')

爪哇岛:

elem.getAttribute("innerHTML");

C#:

element.GetAttribute("innerHTML");

红宝石:

element.attribute("innerHTML")

JS:

element.getAttribute('innerHTML');

如果你想要整个页面HTML使用下面的代码:-

driver.getPageSource();