给定一个 (python) selenium WebElement 我可以得到 innerText 吗?
Given a (python) selenium WebElement can I get the innerText?
以下
element = driver.execute_script("return $('.theelementclass')")[0]
找到我的元素(一个 div 只包含一些文本),但是:
element.text
returns 一个空字符串(这是一个惊喜)。从 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>
可以将webelement传给js代码
element = driver.find_element_by_css_selector('.theelementclass')
inner_text= driver.execute_script("return arguments[0].innerText;", element)
innerText
特定于 IE。如果你想要一个跨平台的字段,使用textContent
:
driver.execute_script("return arguments[0].textContent", element)
element
是已经得到的WebElement
.
顺便说一句,你说你在控制台试过了:
$('.theelementclass').text
它不会工作,因为 .text
是一个 函数 。必须调用。
这里有一个更简单的方法:
element = driver.find_element_by_class_name('theelementclass')
text = element.get_attribute('innerText')
所以你可以用'outerHTML'、'href'、'src[=19 做类似的事情=]' 等 get_attribute() 方法。
以下
element = driver.execute_script("return $('.theelementclass')")[0]
找到我的元素(一个 div 只包含一些文本),但是:
element.text
returns 一个空字符串(这是一个惊喜)。从 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>
可以将webelement传给js代码
element = driver.find_element_by_css_selector('.theelementclass')
inner_text= driver.execute_script("return arguments[0].innerText;", element)
innerText
特定于 IE。如果你想要一个跨平台的字段,使用textContent
:
driver.execute_script("return arguments[0].textContent", element)
element
是已经得到的WebElement
.
顺便说一句,你说你在控制台试过了:
$('.theelementclass').text
它不会工作,因为 .text
是一个 函数 。必须调用。
这里有一个更简单的方法:
element = driver.find_element_by_class_name('theelementclass')
text = element.get_attribute('innerText')
所以你可以用'outerHTML'、'href'、'src[=19 做类似的事情=]' 等 get_attribute() 方法。