python - 还记得在 Selenium 中单击过的元素文本吗?

标签 python python-3.x selenium selenium-webdriver

举个例子,假设我想在 SO 上记录所有用户的简介。

假设我加载了:How to click an element in Selenium WebDriver using JavaScript

我点击了所有用户:.user-details a(其中 11 个)

我将提取的文本 -> 写入了一个 csv。

driver.get(‘Version compatibility of Firefox and the latest Selenium IDE (2.9.1.1-signed)’)

我从 csv 中读取了用户。

用户:Ripon Al Wasim [又出现了,不要点击他] ???这怎么能实现。作为其文字。

这样的事情是可以完成的还是这是 selenium python 的限制?

您可以点击所有这些,但假设您必须抓取 200 页,并且常用名称 Bob 弹出 430 次。我觉得没有必要点他的名字。 Selenium 可以实现这样的功能吗?

我觉得我错过了什么,这是可以实现的,但我不知道如何实现。

您可以比较文本文件的文本和 print(elem.get_attribute("href")) -> 将其写入文件并进行比较。如果存在元素,请删除它们,但这是文本。您可以(也许)将文本放入 excel 文件中。我不完全确定这是否可行,但您可以在 excel 中的文本旁边单独编写 css 元素。并删除有匹配字符串的行。然后让 Selenium 将其加载到 Webdriver 中。

我不完全相信这会奏效。

有没有一种明智的方法可以单击 css 但忽略已单击的文本文件中的名称。

最佳答案

Selenium 没有什么特别之处。这是您与浏览器交互的工具。您的程序需要决定如何进行交互,以及您如何处理来自交互的信息。

听起来你想建立一个用户数据库,那么为什么不使用数据库呢? SQLite 或 PostgreSQL 之类的东西可能很适合你。 在用户详细信息中,存储出现在链接中的名称(假设它对每个用户都是唯一的),并为该名称建立索引。抓取页面时,拉取该链接文本,然后使用 SQL 语句搜索该名称的记录是否存在,如果不存在,则单击该链接并添加新记录。

关于python - 还记得在 Selenium 中单击过的元素文本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47573159/

相关文章:

python - 模拟 Python 对象实例化

python - 验证 DateTimeField 中的日期是否相同

python - 接口(interface)和 Python

python - 无法弄清楚嵌套的 for 循环部分以及它在这段代码中是如何工作的

python - 在 Selenium Firefox 中将默认设置设置为 'no proxy'

java - 无法单击复选框以取消选中它似乎已隐藏

带有 For 循环的 Python 定义函数

python - 多合一 Django/Python 编辑器

python - 文件 "<string>"回溯和行预览

c# - WebDriverWait 没有在等待我指定的元素