我正在用Python(使用Selenium)制作一个脚本,当你运行它时,打开一个浏览器,转到Cookie clicker website并开始点击。这部分工作正常,但我尝试实现一个功能,当您有足够的 cookie 时,机器人会自动购买升级,如果没有,它会打印出“您没有足够的 cookie!”但由于某种原因,即使我有足够的cookie,脚本也总是会打印出来。有人看出问题了吗?
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
browser = webdriver.Firefox()
browser.get('http://orteil.dashnet.org/cookieclicker/')
cookie = browser.find_element_by_id('bigCookie')
while True:
cookie.click()
try:
product = browser.find_element_by_class_name('product unlocked enabled')
product.click()
except NoSuchElementException:
print('You don't have enough cookies to buy that!')
continue
最佳答案
这是因为 find_element_by_class_name 将 name 转换为 css 选择器。 因此,如果您的名称是“产品解锁已启用”,选择器将为“.产品解锁已启用”。但对于这种情况,正确的 css 选择器是 “.product.unlocked.enabled”,因为该元素有多个类名,由 3 个类名组成:“product”、“enabled”、“unlocked”。 您应该使用“product.unlocked.enabled”之类的名称,或者例如“unlocked.enabled”,这也是正确的,因为该元素仍然具有“unlocked”和“enabled”类。
关于python - 使用 Selenium 的 Cookie Clicker 机器人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40871945/