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 div
个 class
。所以,我在下面尝试了这些来打印具有相同 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)
我正在尝试获取标签 <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 div
个 class
。所以,我在下面尝试了这些来打印具有相同 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)