私は自動的に私のために賭けるスクリプトを書いている(私は知っている、それはプロジェクトだ、私はお金を稼ぐことを期待していない、それはT & Csに対して)と私はBet365。私は多くのElementNotVisibleException: Message: element not visible
エラーが発生しました。パスワードフィールドにパスワードを入力できないため、ログインしようとすると最初に遭遇しました。私は、JavaScriptのコマンドを送信することにより、その周りを得た:多くの目に見えない要素を扱う
driver.find_element_by_css_selector("div.hm-Login_UserNameWrapper > input.hm-Login_InputField").send_keys(config.BET365_USERNAME)
driver.execute_script("document.getElementsByClassName('hm-Login_InputField Hidden')[0]"
".setAttribute('value', '" + config.BET365_PASSWORD + "')")
driver.find_element_by_css_selector("body > div:nth-child(1) > div > div:nth-child(1) > div > "
"div.hm-HeaderModule_Primary > div.hm-HeaderModule_UserAdmin > div > "
"div.hm-Login_PasswordWrapper > button").send_keys(Keys.ENTER)
私はこれを行うたら、私が行って、1.33のいずれかのオファーを見つけることを試みる:確かに私の要素を見つけるん
low_odd = driver.find_elements_by_xpath("//*[contains(text(), '1.33')]")[0]
を。 low_odd.click()
を実行しようとすると、エラーElementNotVisibleException
が返されます。
このlow_odd
要素のパスを取得する方法はありますか?そのため、別のJavaSciptコマンドを送信して自分のbetslipで選択することはできますか?またはこれらのエラーを回避する他の巧妙な方法?
それは要素見えない、ではない要素が見つかりませんを報告するため。要素がDOMツリーに存在することを意味します。しかし、要素に相当しない存在がブラウザーでレンダリングを完了しました(ページから要素を見ることができます)。したがって、私たちは頭に入れておく必要があります:コーディング時にページの読み込みを待つようにしてください。もう1つ、セレンは、一般的には100〜300ミリ秒で、あなたが思っているよりも速いページ上の操作で完了します。ページのオープン/リダイレクト後に明示的な待機を追加してみてください。 – yong