如何提取HTML标记中的文本(在Selenium IDE中)?
html的外观如下所示:如何提取HTML标记中的文本(在Selenium IDE中)?,selenium,Selenium,html的外观如下所示: <p> sometext1 <br> sometext2 <br> sometext3 </p> sometext1 sometext2 sometext3 我想提取段落标记之间的所有文本,包括标记 我尝试使用storeText函数,但它只存储文本,没有标记。 我可以存储整个HTML源代码,然后在Perl中提取我需要的内容,但我想知道是否有一种方法可以使用特定的xpath
<p>
sometext1
<br>
sometext2
<br>
sometext3
</p>
sometext1
sometext2
sometext3
我想提取段落标记之间的所有文本,包括
标记
我尝试使用storeText
函数,但它只存储文本,没有标记。
我可以存储整个HTML源代码,然后在Perl中提取我需要的内容,但我想知道是否有一种方法可以使用特定的xpath存储HTML代码块(例如,将网页中第三个表的HTML代码存储在一个变量中)。您可以使用getEval()和返回元素内部HTML的Javascript。您必须在javascript中找到它,不过@Tarun:如果我能找到,我会的 @谢谢你,伙计,这很管用。 我用过: 这将第9段的内容保存在变量
p
中。
我不得不使用getElementsByTagName
,因为标记没有id
为了更精确,可以使用getElementById
函数:
storeEval | window.document.getElementById("id of element").innerHTML | p
希望这也能帮助其他人。
再次感谢。innerHTML
我将尝试使用document.getElementById('id')。innerHTML我建议:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("url")
element = driver.find_element_by_tag_name("p")
text = element.text
但请记住,如果您处理的是文本框,则不能使用
.text
;它返回None
。在这种情况下,您应该使用.get\u属性(“value”)
,当您无法捕获所需内容时,可以使用.get\u属性(“innerHTML”)
getAttribute(“innerHTML”);适用于我我建议通过类名查找它,不是所有对象都有它的Id
storeEval | window.document.getElementsByClassName('*classname*')[0].innerHTML; | HTMLContent
数字0将返回第一次出现的值。如果有多个元素,请选择适当的数目,或按.length获取类出现的数目
storeEval | window.document.getElementsByClassName('*classname*').length; | ClassCount
谢谢你,伙计,这很有效。稍后我会发布一个更详细的答案。你也可以考虑把这个响应标记为正确的,如果它对你有用的话。
storeEval | window.document.getElementsByClassName('*classname*').length; | ClassCount