与Selenium的Cookie clicker机器人

时间:2016-11-29 17:21:25

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

我在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

1 个答案:

答案 0 :(得分:3)

这是因为find_element_by_class_name将名称转换为css选择器。 因此,如果您的名称是“已启用产品已解锁”,则选择器将为“.product unlocked enabled”。但对于这种情况,正确的css选择器是 “.product.unlocked.enabled”因为这个元素有多个类名,它由3个类名组成:'product','enabled','unlocked'。 你应该使用像“product.unlocked.enabled”这样的名称或者例如“unlocked.enabled”这样的名字也是正确的,因为这个元素仍然有“解锁”和“启用”类。