以下
element = driver.execute_script("return $('.theelementclass')")[0]
找到我的元素(只包含一些文字的div),但是:
element.text
返回一个空字符串(这是一个惊喜)。从Java脚本控制台:
$('.theelementclass').text # also (consistently) empty
$('.theelementclass').innerText # YES! gets the div's text.
所以,我的问题是,鉴于我有一些WebElement ,我能找到innerText吗? (由于无聊的原因,我想使用找到的webelement而不是原始查询进行操作。)
我包括周围的HTML。但是,我不认为它有用(因为元素被找到并且是唯一的)
<first-panel on-click="onClickLearnMore()" class="ng-isolate-scope">
<div class="comp-onboarding-first-thought-panel">
<div class="onboarding-text-container">
<div class="theelementclass">
Congratulations.
You found the text is here!
</div>
<div class="button-cont">
<div ng-click="onClickButton()">Learn more about The Thing</div>
</div>
</div>
</div>
</first-panel>
答案 0 :(得分:7)
这是一种更简单的方法:
element = driver.find_element_by_class_name('theelementclass')
text = element.get_attribute('innerText')
因此,您可以通过 get_attribute(' outerHTML ',' href ',' src '等执行类似的操作)方法。
答案 1 :(得分:4)
您可以将webelement传递给js代码
element = driver.find_element_by_css_selector('.theelementclass')
inner_text= driver.execute_script("return arguments[0].innerText;", element)
答案 2 :(得分:2)
innerText
特定于IE。如果您需要跨平台字段,请使用textContent
:
driver.execute_script("return arguments[0].textContent", element)
element
已经获得WebElement
。
顺便说一下,你说你在控制台试过这个:
$('.theelementclass').text
它不起作用,因为.text
是功能。它必须被称为。