当前位置: 首页 > 知识库问答 >
问题:

Python/Selenium-无法从文本框中提取文本

梁烨
2023-03-14

我正在使用下面的python代码从文本框中提取文本

def check():
    with open("LP_input.txt") as f:
         for line in f:
             url = line.strip()
             driver.get(url)
             driver.wait = WebDriverWait(driver, 10)
             time.sleep(10)
             PC = driver.find_elements_by_xpath("//div[@id='wwctrl_landingPageDataForm_attributeMap_STRUCTURE_DATA_REQUIRED']")
             for x in PC:
                 print(x)

我的HTML(我正在提取文本的网页)

<div id="wwctrl_landingPageDataForm_attributeMap_STRUCTURE_DATA_REQUIRED" class="wwctrl">
<input id="landingPageDataForm_attributeMap_STRUCTURE_DATA_REQUIRED" class="text medium" name="attributeMap.STRUCTURE_DATA_REQUIRED" maxlength="1000" value="TRUE" style="" type="text"
<selenium.webdriver.remote.webelement.WebElement (session="9f5789eaeb8dbd5cc005dc63e3d4f9f2", element="0.6714808439487934-1")>

实际上,文本框将包含TRUE或false。我想把它摘录几千页。

共有1个答案

申高卓
2023-03-14

ID视为LandingPageDataForm_AttributeMap_Structure_Data_Required,将Name视为AttributeMap.Structure_Data_Required,似乎这两个属性都是动态生成的。因此,我们需要构造一个动态的XPathCSS来首先获取所有的WebElements。我们需要将WebElements存储在WebElements列表中,然后遍历WebElements列表以检索value字段的值,该值为truefalse,如下所示:

PC = driver.find_elements_by_xpath("//input[contains(@id, 'landingPageDataForm')][@class='text medium']")
for x in PC:
    text = x.getText();
    print(text)
 类似资料:
  • 问题内容: 选择日期后,我无法从Ajax日历控件中读取日期 http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/Calendar/Calendar.aspx 我没有收到任何错误,但无法从文本框中获取任何值。 问题答案: 获取文本的调用应为: 不要问我为什么,这只是它的方式一直都是。通过输入元素,您可以更改其属性。

  • 问题内容: 这是示例xml文档: 我想提取文本而不指定元素,我该怎么做,因为我有10个这样的文档。我想要这样做是因为我的问题是用户正在输入一个我不知道的单词,必须在其各自文本部分的所有10个xml文档中进行搜索。为此,我应该在不知道元素的情况下知道文本的位置。所有这些文档都不同的另一件事。 请帮忙!! 问题答案: 您可以简单地去除所有标签: 但是,如果您只想在Linux中搜索文件中的某些文本,则可

  • 问题内容: 我想使用Python从HTML文件中提取文本。如果要从浏览器复制文本并将其粘贴到记事本中,我希望得到的输出基本上相同。 我想要比使用正则表达式更强大的功能,而正则表达式可能在格式不正确的HTML上失败。我见过很多人推荐美丽汤,但是使用它时遇到了一些问题。例如,它拾取了不需要的文本,例如JavaScript源。此外,它没有解释HTML实体。例如,我希望&#39; 在HTML源代码中转换为

  • 问题内容: 为了在python中处理MS Word文件,有python win32扩展名,可以在Windows中使用。我该如何在linux中做同样的事情?有图书馆吗? 问题答案: 您可以对antiword进行子过程调用。Antiword是一个Linux命令行实用程序,用于从word doc中转储文本。适用于简单文档(显然会丢失格式)。它可以通过apt(可能是RPM)获得,也可以自己编译。

  • 问题内容: 选择日期后,我无法从Ajax日历控件中读取日期 http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/Calendar/Calendar.aspx 我没有收到任何错误,但无法从文本框中获取任何值。 问题答案: 获取文本的调用应为: 不要问我为什么,这只是它的方式一直都是。通过输入元素,您可以更改其属性。

  • 我需要从大文件中提取文本(最大限制50MB)文件可能是doc、ppt、xls、txt或pdf格式。到目前为止,我使用了ApachePOI'http://poi.apache.org/' 用于Microsoft Office文档和PDFBox从PDF中提取文本。然而,随着文件变大,提取过程变得缓慢,特别是以下文件。到目前为止我取得的成果: 1. PPTX-45MB-3分钟apx 2.PDF-62MB