从 aria-label selenium webdriver 中提取文本 (python)

2023-12-11

现在我正在开发一个程序,该程序接受用户输入的问题和答案,将它们分成单独的 q 和 a 列表,然后根据问题或答案自动回答问题。由于使用“机器人”的地方是在线的,我使用的是 Selenium Web 驱动程序,这在尝试读取 aria 标签时给我带来了一些问题。我不知道我做错了什么,因为我对 selenium、HTML 或 CSS 一点也不了解。我试图找到每个容器的 aria-label 值,但不知道它是什么

我试图获取文本值的 HTML 示例:

<div class="MatchModeQuestionGridBoard-tile"><div class="MatchModeQuestionGridTile" touch-action="auto"><div class="MatchModeQuestionGridTile-content"><div aria-label="to cloak; to conceal the truth; to offer lame excuses" class="FormattedText notranslate TermText MatchModeQuestionGridTile-text lang-en" style="font-size: 14px;"><div style="display: block;">to cloak; to conceal the truth; to offer lame excuses</div></div></div></div></div>

我的代码片段:

def driver():
    driver = webdriver.Chrome()
    driver.get(link)
    startMatch = driver.find_element_by_xpath("/html/body/div[5]/div/div/div/div[2]/button").click()
   
    #find text in matches
    container = driver.find_elements_by_class_name('MatchModeQuestionGridTile-content')
    containerFile = open("QuizletTerms.txt", "w+")

    for _ in list(container):
        arialabel = driver.find_elements_by_css_selector("div[aria-label='']")
        containerFile.write("\n")
        containerFile.write(str(arialabel))
        print(arialabel)

    containerFile.close()
    print("done")
    sleep(5)

Output:


[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]

文本例如披风;隐瞒真相;提供蹩脚的借口存在于孩子身上<div>以及它的父级<div>。所以提取它你需要诱导WebDriver等待 for visibility_of_all_elements_located()您可以使用以下任一方法定位策略:

  • Using CSS_SELECTOR and get_attribute():

    print([my_elem.get_attribute("aria-label") for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "div.MatchModeQuestionGridTile-content>div[aria-label]")))])
    
  • Using XPATH and get_attribute():

    print([my_elem.get_attribute("aria-label") for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//div[@class='MatchModeQuestionGridTile-content']/div[@aria-label]")))])
    
  • Note:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 aria-label selenium webdriver 中提取文本 (python) 的相关文章

随机推荐

  • 如何根据 iOS 中的当前设备加载单个类的不同 xib?

    我在视图控制器中有完整的代码 所以 我需要在 iPad iPhone 和 iPod 中显示相同的输出 因此 我使用单视图控制器来处理数据 为此 我如何选择 ipod 或 ipad 取决于 iOS 中当前设备的不同 XIB 我不想再创建一个视
  • 如何本地化 Inno Setup 安装文件的 VersionInfo?

    我正在创建一个根据用户语言具有不同名称的应用程序 例如 该软件称为 设备模拟器 英语和 Ger teemulation 在德国 我想在安装文件的版本信息中反映不同的名称 右键单击 gt 属性 gt 详细信息 选项卡 到目前为止 我在 Inn
  • 使用 jQuery 检测元素内容更改

    change 函数可以工作并检测表单元素的变化 但是有没有办法检测 DOM 元素的内容何时发生变化 这不起作用 除非 content是一个表单元素 content change function do something 我希望在执行以下操
  • 什么是最小有效 UNC 路径?

    我想创建一个 除其他外 解析 UNC 路径的库 但我不完全理解语法 常见的例子是 server share path 有效的文件路径需要所有这些吗 我可以导航到 server 没有share 使用 Windows 资源管理器 但我假设它使用
  • 我们如何使用 Windows 身份验证保护 Swagger UI

    我们有一个 Net Core 2 2 Web Api 它使用 swagger ui 来公开 Web Api 定义 我们希望仅向特定 AD 组内的用户保护此端点 我们目前使用 Windows 和匿名身份验证 问题是我们无法强制 Swagger
  • 为什么函数参数中的逆变类型参数被视为处于“out”位置?

    我很难用英语描述 但问题是 class Consumer
  • 如何将多边形绑定到 WPF 中现有的 PointCollection?

    我当前的实现不会在表单上显示任何内容 即使我认为有界的集合有数据 我在调试中检查 这是一些代码 public event PropertyChangedEventHandler PropertyChanged PointCollection
  • 使用 Dart/Flutter 查询包含 Cloud Firestore 中保存的 ID 的地图

    如何使用 Dart Flutter 获取存储在 Cloud Firestore 中的地图 我尝试过这个 但它只适用于 Array Firestore instance collection posts orderBy createdAt d
  • 我应该如何更新过时的 fork?

    几个月前 我分叉了一个存储库 进行了更改并提交了拉取请求 该请求最终被 master 接受 从那以后 我的分叉代码在我的硬盘上就没有受到任何影响 现在 我想再次为同一个存储库做出贡献 我的 fork 中的代码与 master 不同步 因为它
  • ADB服务器无法启动android

    我已经安装了 adt 捆绑包 eclipse 但是 我似乎无法运行 AVD 我有问题 ADB server didn t ACK failed to start daemon 我已经搜索了如何解决它 我已经阅读并输入adb kill ser
  • 将 Excel 导入 Panda Dataframe

    以下只是 Coursera 数据科学作业的开始 我希望这不是一件小事 但我对此迷失了方向 找不到答案 我被要求将 Excelfile 导入 panda 数据框并随后对其进行操作 该文件可以在这里找到 http unstats un org
  • Makefile 的运行方式与 shell 命令不同? (使用猫时)

    我正在尝试将手动运行的命令转换为 Makefile 目标 但出现与我的使用相关的错误cat 我想我正在尝试打开文件 cat 而不是cat ing 实际文件 queries sql clean ls sql sql sort V while
  • 捕获所选 UI 菜单选项的名称

    我正在尝试将条目添加到 Google 表格的菜单中 ui createMenu Push to Sheet addItem Texas menuItem addItem Illinois menuItem addToUi 在回调函数中men
  • 新日期的日期无效("YYYY-MM-DDThh:mm:ss");实例化

    我正在使用 Titan 它是一个基于 JavaScript 的移动开发框架 我有一个数组 其中的单元格中包含一个表示 YYYY MM DD HH mm ss 格式的 日期和时间 字符串的字符串 NightsArray i 3 返回 2014
  • Hibernate 5 序列生成问题

    我正在从 3 迁移到 hibernate 5 我发现序列生成器在 Hibernate 5 中无法正常工作 我用最小值 1000 定义了序列并递增 1 但是当我尝试创建新的实体记录时 我看到插入的记录的 id 为 951 看起来 id 与实际
  • 将列表编组为 XML 是可行的 - 但如何解组呢?

    我可以使用 Wrapper 类来编组 ObservableList 如下所示 但我无法将其解组回之前的包装类 这个想法是 我有一个 费用 的可观察列表 我将此列表放入包装类中 并将该类保存为 XML 结果如下
  • FCM 主题限制以及旧的未使用主题的过期/失效?

    我使用 FCM 主题已经有一段时间了 但文档非常有限 大多数搜索都会指向相同的页面 所以我在这里询问 希望有人在该主题上有足够的经验来回答我的问题 我想知道允许的主题数量是否有限制以及不再使用的主题会怎样 我的意思是 什么时候主题会无效 我
  • IBM Worklight 6.1 - 项目无法初始化,因为项目数据库模式来自 N/A 版本

    当我尝试将 war 文件部署到应用程序服务器时 收到以下错误消息 错误 500 javax servlet ServletException Worklight 控制台 初始化失败 记录的异常 java lang RuntimeExcept
  • strsplit 和 lapply

    我在表单的某些文本中有一个字符串 12 34 77 包括引号 我需要将每个数字的值放入列表中 我尝试使用lapply and strsplit control2 lapply strsplit data values as numeric
  • 从 aria-label selenium webdriver 中提取文本 (python)

    现在我正在开发一个程序 该程序接受用户输入的问题和答案 将它们分成单独的 q 和 a 列表 然后根据问题或答案自动回答问题 由于使用 机器人 的地方是在线的 我使用的是 Selenium Web 驱动程序 这在尝试读取 aria 标签时给我