如何从<;p>;使用XPath和Python标记

如何从<;p>;使用XPath和Python标记,python,selenium,selenium-webdriver,xpath,getattribute,Python,Selenium,Selenium Webdriver,Xpath,Getattribute,我需要用XPath从中的文本中捕获一行。我需要存储文本内容类型:text/plain;charset=us ascii转换为python中的变量,但我得到下一个错误: selenium.common.exceptions.WebDriverException:消息:类型错误:应为元素或WindowProxy,获取:[对象文本]{} 下面是我正在尝试的代码: import selenium.webdriver as webdriver browser = webdriver.Firefox()

我需要用XPath从
中的文本中捕获一行。我需要存储文本
内容类型:text/plain;charset=us ascii
转换为python中的变量,但我得到下一个错误:

selenium.common.exceptions.WebDriverException:消息:类型错误:应为元素或WindowProxy,获取:[对象文本]{}

下面是我正在尝试的代码:

import selenium.webdriver as webdriver

browser = webdriver.Firefox()
browser.get('https://www.w3.org/Protocols/rfc1341/7_1_Text.html')

foo = browser.find_element_by_xpath('/html/body/p[5]/text()')
print(foo)
7.1文本内容类型

文本内容类型用于发送以下内容的材料:
主要是文本形式。这是默认内容-
类型。“字符集”参数可用于指示
正文文本的字符集。文本的主要子类型
它是“普通的”。这表示纯(未格式化)文本。这个
Internet邮件的默认内容类型为“文本/普通”;
字符集=美国ascii”。

除了纯文本之外,还有许多用于表示
可能被称为“扩展文本”的内容——嵌入
格式和演示信息。有趣的故事
许多这种表述的特点是
在某种程度上,即使没有
解释它们。因此,区分它们是有用的,
在最高级别上,从图像等无法读取的数据,
音频或以不可读形式表示的文本。在
由于缺乏适当的解释软件,因此
向用户显示文本的子类型是合理的,而
对于大多数非文本数据,这样做是不合理的。

此类格式化文本数据应使用
文本的子类型。合理的文本子类型通常是
由表示格式的通用名称给出,例如。,
“文本/富文本”。

7.1.1字符集参数

可在内容中指定的关键参数-
文本数据的类型字段是字符集。这是
使用“charset”参数指定,如:

内容类型:文本/纯文本;字符集=美国ascii码

与其他一些参数值不同
字符集参数不区分大小写。默认值
字符集,必须在没有
字符集参数是US-ASCII。
xpath中的
text()
是这里的问题,请参见以下内容:

import selenium.webdriver as webdriver

browser = webdriver.Firefox()
browser.get('https://www.w3.org/Protocols/rfc1341/7_1_Text.html')

foo = browser.find_element_by_xpath('/html/body/p[5]')
print(foo.text)

打印文本内容类型:text/plain;charset=us ascii您必须对位于()的元素的可见性进行归纳,并且您可以使用以下任一项:

  • 使用
    XPATH
    和文本属性:

    driver.get("https://www.w3.org/Protocols/rfc1341/7_1_Text.html")
    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//h3[contains(., 'The charset parameter')]//following-sibling::p[2]"))).text)
    
  • 使用
    XPATH
    get\u attribute()

  • 控制台输出:

    Content-type: text/plain; charset=us-ascii
    
  • 注意:您必须添加以下导入:

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

谢谢您的回答。它在这个例子中起作用,但我现在尝试应用到另一个例子中,但我无法抓住“用户”这一行<代码>
你好,用户
您的申请已被接受

获取您的数据:
------------------------------------
� 用户:名称
� 通行证:12345678
--------------------------------------
再见

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