如何在Selenium中获取WebElement的HTML代码

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

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

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

  close  

它返回:

 close 

但我需要一些东西给我带来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。

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

 AB 

内部元素输出

 AB 

外部元素输出

 AB 

实况示例: –

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

您将在下面找到根据不同绑定所需的语法。 根据需要将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(); 

如果我们有这个:

  close 

我们需要获得“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(">"));