我正在寫一個腳本,自動對我進行賭博(我知道,這是一個項目,我不希望賺錢,這是針對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樹中。但存在與元素不等同的元素,已經完成了瀏覽器的渲染(你可以看到頁面中的元素)。所以我們應該記住:編碼時等待頁面加載,就像您等待頁面打開,然後您可以手動點擊/輸入。另一件事,硒在網頁上每次操作完成的速度比您想象的要快,一般爲100-300毫秒。嘗試在頁面打開/重定向後添加顯示等待。 – yong