无法在Python中读取div标签中的文本

1 投票
1 回答
1483 浏览
提问于 2025-04-18 05:35

这段代码的意思是:我在网页上找到了两个类名为 "d3-tip n" 的

标签。当我把鼠标悬停在上面时,这些标签的样式属性中的透明度会变成 "1",我想把这个
标签里的文字打印出来。

我写了下面这段代码,但不知道为什么它没有打印出任何内容。

需要注意的是,我也试过用 position.text 来获取文本,但也没有成功。

下面是相关的HTML代码,显示了两个类名相同的

项,其中包含SQL查询的那个是我想打印的文本。

enter image description here

for position in driver.find_elements_by_xpath('//div[@class="d3-tip n"]'):
                    style = position.get_attribute('style')
                    opacity = style[:32]
                    if opacity == "position: absolute; opacity: 1;":
                       print position

1 个回答

2

你可以直接从找到的两个 div 中获取第一个,方法是通过类名来获取:

element = driver.find_elements_by_xpath('//div[@class="d3-tip n"]')[0]
print element.text

另一种选择是检查这个 div 标签里面是否没有子元素:

element = driver.find_element_by_xpath('//div[@class="d3-tip n"][count(*)=0]')
print element.text

还有一种选择是检查这个 div 标签里面是否有 select 文字:

element = driver.find_element_by_xpath('//div[@class="d3-tip n"][contains(text(), "select")]')
print element.text

撰写回答