Selenium Python 如何从 <div> 获取文本(html 源)

Selenium Python how to get text(html source) from <div>

我正在尝试获取标签 <div> 内的文本 .5,我通过 id 找到了该元素,该元素名为 "price"。

html的片段如下:

<div id="PPP,BOSSST,NYCPAS,2015-04-26T01:00:00-04:00,2015-04-26T05:20:00-04:00,_price" class="price inlineBlock strong mediumText">.50</div>

这是我试过的方法

price.text
price.get_attribute('value')

以上两个都不行

更新: 感谢所有试图提供帮助的人。 我把你的答案结合在一起得到了解决方案:)

    price = driver.find_element_by_xpath("//div[@class='price inlineBlock strong mediumText']")
    price_content = price.get_attribute('innerHTML')
    print price_content.strip()

将 css 选择器更改为

div[id$='_price']

完整代码

 price = fltright.find_element(By.CSS_SELECTOR, "div[id$='_price']")
 price.text

你的元素是隐藏的,上次我使用 Selenium 你无法获取隐藏元素的文本。也就是说,你总是可以执行javascript,我通常不写python,但应该是这样的:

def val = driver.execute_script("return document.getElementById('locator').innerHTML")

能不能用正则表达式或者Beautiful Soup来查找HTML中元素的内容:

re.search(r'<div.*?>(*.?)</div>', price.get_attribute('innerHTML')).group(1)

browser.find_element_by_xpath("//表格[@id='workQueueTaskListForm']/div[1]/p").text

我尝试了您编辑的解决方案,但他们只得到 1 divclass。所以,我在下面尝试了这些来打印具有相同 class.

div 列表

element更改为elements将输出一个列表:

price = driver.find_elements_by_xpath('//div[@class = "price inlineBlock strong mediumText"]')

使用for ... in range ()打印列表:

num = len (price)
for i in range (num):
  print (price[i].text)