2016-11-29 5 views
0

私はクッキークリッカーのウェブサイトを開き、クッキーを自動的にクリックしてその部分がうまく動作するプログラムを作っています。その後、私はあなたが購入し、アップグレードするために十分なクッキーを持っているたびに、プログラムがそれを購入したり、「あなたはそれを購入するのに十分なクッキーを持っていません!しかし何らかの理由でプログラムが動作しません。それはクッキーをうまくクリックしますが、あなたがアップグレードを購入するのに十分なクッキーを持っていても、「それを購入するのに十分なクッキーがありません!」というメッセージが表示されます。ここに私のソースコードがありますので、このプログラムの修正方法についてのあなたのアイデアを教えてください。 find_element_by_class_nameはCSSセレクタに名前を変換しているためにですhttp://orteil.dashnet.org/cookieclicker/クッキークリッカーを作ろう

+0

おそらく、問題は 'browser.find_element_by_class_name( 'プロダクトがロック解除されました')'です。リンクテキストやxpathで検索するか、 "class name"を 'product.unlocked.enabled'のように変更してみてください。 –

+0

私は最初は同じことを考えましたが、アップグレードによってクッキーが十分にある場合、そのクラス名は「製品がロックされていません」に変更されているので、ここでは問題ではないと確信しています... – Nenad

+0

私のFirefoxは 'product unlocked enabled'のみを' cursor'に、 'product unlocked disabled'を他の製品に対して表示しますが、クリックすることができます。 – furas

答えて

3

:あなたは私が何を言っているかわからない場合

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 

P.s これはゲームです。 あなたの名前が「プロダクトがロック解除されている」の場合、セレクタは「.product unlocked enabled」になります。しかしこの場合、右のcssセレクタは ".product.unlocked.enabled"です。この要素は 'product'、 'enabled'、 'unlocked'の3つのクラス名からなる複数のクラス名を持っているためです。 "product.unlocked.enabled"のような名前、または "unlocked.enabled"などの名前も使用してください。この要素にはまだ "unlocked"と "enabled"のクラスが存在するため、正しいものです。

+0

問題を修正しました。 :) – Nenad

関連する問題