繁体   English   中英

无法使用 Selenium 通过 xpath 获取带有查找元素的文本

[英]Can't get Text with Find Element by xpath with Selenium

我正在尝试使用 selenium 和 Python 从下面的示例中获取元素“ show-more-less-html__markup ”中的所有文本:

在此处输入图片说明

这是我的尝试:

description = browser.find_element_by_xpath("//div[@class='show-more-less-html__markup']").text

这不是 Python

browser.findElement(By.className("description__text description__text--rich")).getText();

是爪哇。
你在混合东西...

如果我们在HTML DOM是否有唯一条目,请检查dev tools (谷歌浏览器)。

您应该检查的 xpath :

//div[@class='show-more-less-html__markup']

检查步骤:

Press F12 in Chrome -> 转到element部分 -> 执行CTRL + F -> 然后粘贴xpath并查看您想要的element是否被1/1匹配节点突出显示

如果我们有 1/1 匹配节点,请确保:

  1. 此 div 不在 iframe 下。
  2. 这个 div 不在 shadow-root 下。
  3. 您不应该在 selenium 启动的新选项卡/窗口上。

一旦我们确定我们有唯一的条目并且其他条件也匹配,我们可以尝试通过以下方式提取文本:

代码试用1:

try:
    msg = WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='show-more-less-html__markup']"))).text
    print('msg')
except:
    pass

代码试用2:

try:
    msg = WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='show-more-less-html__markup']"))).get_atrribute('innerHTML')
    print('msg')
except:
    pass

代码试用3:

try:
    msg = WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='show-more-less-html__markup']"))).get_attribute('innerText')
    print('msg')
except:
    pass

进口:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM