python - Selenium find_element_by_id 未按预期运行
问题描述
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
PATH = "C:\Program Files (x86)\chromedriver.exe"
browser = webdriver.Chrome(PATH)
browser.get("https://orteil.dashnet.org/cookieclicker/")
time.sleep(3)
cookie = browser.find_element_by_id("bigCookie")
cookie_count = browser.find_element_by_id("cookies")
actions = ActionChains(browser)
actions.click(cookie)
productNames = []
for i in range(18):
productNames.append(browser.find_element_by_id("productName" + str(i)))
print("product names: ", productNames)
productPrices = []
for i in range(18):
productPrices.append(browser.find_element_by_id("productPrice" + str(i)))
print("product names: ", productNames)
def purchase(count,cps):
pass
def start_clicking():
for i in range(500):
actions.perform()
count = int(cookie_count.text.split(" ")[0])
cps = cookie_count.text.split("per second : ")[-1]
start_clicking()
browser.quit()
我正在尝试创建一个机器人来自动播放 cookie 点击器。现在我只是想让机器人点击 cookie,然后创建一个产品名称和价格列表。当我跑步时,我会收到许多难以理解的文本。例如,当 i 等于 4 时,我希望它将 Factory 附加到列表中,因为当我进入检查时,我在元素选项卡中找到了这一行:
<div class="title" id="productName4">Factory</div>
我还想将价格添加到另一个列表中,例如
<span class="price" id="productPrice4">130,000</span>
在这种情况下为 130000。
解决方案
通过做
for i in range(18):
productNames.append(browser.find_element_by_id("productName" + str(i)))
和
productPrices = []
for i in range(18):
productPrices.append(browser.find_element_by_id("productPrice" + str(i)))
你得到的是网络元素,而不是它们的文本。
如果您想收集这些文本,您应该这样做
for i in range(18):
productNames.append(browser.find_element_by_id("productName" + str(i)).text)
和
productPrices = []
for i in range(18):
productPrices.append(browser.find_element_by_id("productPrice" + str(i)).text)
推荐阅读
- javascript - 自定义表情符号反应角色
- azure-web-app-service - 将自定义域添加到 webapp 并稍后更改
- tcsh - tcsh:意外标记“换行符”附近的语法错误
- python - PyQt5 - 具有相同对象的选项卡
- html - 如何用 CSS 网格交换项目?
- postgresql - 将单个数据库从一个 RDS 实例 (Postgres) 复制到另一个
- vertica - Vertica 数据库添加了具有相同主键的重复条目
- android - Android Studio App Inspector 不显示数据库
- javascript - 我想在浏览器关闭时删除 cookie,但在页面之间导航时保留它们。怎么做?
- memgraphdb - 如何将 Memgraph 数据持久化到本地硬盘?