我需要找到a href
元素并返回其内容。
以下是来源中的内容:
<div id="responseDiv" style="background-color:#EBECED;width: 450px;">
<iframesrc="/iframe.asp" width="575" height="120" frameborder="0"
marginwidth="1" marginheight="1" scrolling="no">
#document
<html>
<head> </head>
<body marginwidth="1" marginheight="1">
<font size="3" style = "letter-spacing: 0pt" color="#336699" face="Arial"
<a href="blablabla?subject=blebleble" target="_blank">merkl@gmail.com</a>
</font>
</body>
</html>
</iframe>
</div>
尝试打印Div的outerHTML,这是我能找到的唯一元素:
IWebElement pisso = driver.FindElement(By.XPath("//*[@id="responseDiv"]"));
string outerHTML = pisso.GetAttribute("outerHTML");
但它并没有返回href内容,只有这个:
<div id="responseDiv" style="background-color:#EBECED;width: 450px;">
<iframe src="/iframe.asp" width="575" height="120" frameborder="0" marginwidth="1" marginheight="1" scrolling="no">
<p>Your browser does not support iframes.</p></iframe>
</div>
我已尝试直接找到href元素,但无法找到它,CssSelector为:
IWebElement pisso = driver.FindElement(By.CssSelector("body > font > a"));
还试过XPath:
IWebElement pisso = driver.FindElement(By.XPath("/html/body/font/a"));
答案 0 :(得分:2)
您需要通过.getAttribute(value)
获取属性值,该值返回String
。
所以试试这个:
String hrefValue = driver.FindElement(By.CssSelector("#responseDiv body font a")).getAttribute("href");
答案 1 :(得分:0)
您尝试提取WebElement
属性href
的{{1}}位于blablabla?subject=blebleble
之内,因此您必须先切换到iframe
然后搜索/查找元素以提取iframe
属性,如下所示:
href
答案 2 :(得分:0)
原因是其他元素没有被打印,因为程序在生成OuterHTML之前拉得太快了。
使用:
解决 System.Threading.Thread.Sleep(5000);
这样它就可以打印Div中的所有内容