2017-12-01 6 views
1

これはかなり簡単な問題だと思いますが、私の人生のためにそれを理解することはできません。私はNBAプレーヤーのパフォーマンスプロップページに到達しようとしています:(奇妙な広告スプラッシュ画面が最初に表示)を2回ロードする必要があるボタンを押して自動化しようとする

https://www.bet365.com/#/AC/B18/C20559797/D47/E1/F43/P^47/Q^1/I

私のコードにメインページ(www.bet365.com)をロードして、左にバスケットボールを選択して、ページ上に「Player Performances」ボタンを見つけようとします。これは私の難しさが来ている場所です。私はCSSセレクタまたはxpathを使って自動化しようとしています。しかし、私が試してみるものはすべて解除不可能です。 enter image description here

これまでのコードはここまでですが、誰もプログラム的にNBAプレーヤーのパフォーマンスページにナビゲートする方法についてアドバイスをしていますか?

url = "https://www.bet365.com/" 
driver = webdriver.Chrome('./chromedriver.exe ') 
driver.get(url); 
print("Waiting To Ensure Data Load 1 of 2") 
time.sleep(5) # Let the user actually see something! 
driver.get(url); 
print("Waiting To Ensure Data Load 2 of 2") 
time.sleep(5) 
print("Naviagating to BasketballSection Section") 
driver.find_element_by_css_selector("body > div:nth-child(1) > div > div.wc-PageView > div.wc-PageView_Main.wc-HomePage_PageViewMain > div > div.wc-HomePage_ClassificationWrapper.wc-CommonElementStyle_WebNav > div > div > div:nth-child(7)").click(); 
time.sleep(5) 
urltwo = "body > div:nth-child(1) > div > div.wc-PageView > div.wc-PageView_Main > div > div.wc-CommonElementStyle_PrematchCenter.wc-SplashPage_CenterColumn > div.sm-SplashModule > div:nth-child(1) > div:nth-child(3) > div.sm-MarketGroup_Open > div > div.sm-MarketContainer.sm-MarketContainer_NumColumns1.sm-Market_Open > div > div" 
submit = driver.find_element_by_css_selector(urltwo) 
submit.click() 

は、それを作るのかわからない、私はと左のバーにバスケットボールにナビゲートすることができる午前:私はつもりですので、日常的にページの変更上のURLは、コードでそれを見つけるために必要とされます簡単。基本的に私の目標は、そのページを見て、NBA Player Performancesリンクへのリンクを見つけることです。 ありがとうございます。私にとって

答えて

1

、このコードは、Windows 10上のChromeで動作します。

from selenium.webdriver.chrome.options import Options 
from selenium import webdriver 

options = Options() 
options.add_argument('--disable-infobars') 
driver = webdriver.Chrome(chrome_options=options) 
url = "https://www.bet365.com/#/AC/B18/C20559797/D47/E1/F43/P^47/Q^1/I" 
# First get only navigates to https://www.bet365.com 
driver.get(url); 
# Second one gets you to the full URL path. 
driver.get(url); 

あなたが本当にビューに要素をスクロールするlocation_once_scrolled_into_viewを試し、画面を横断する必要がある場合。このコードは私のためにも機能しました(上記のものと同じです)。

from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
url = "https://www.bet365.com/#/AS/B18/" 
driver.get(url); 
driver.get(url); 
player_perf_xpath = "/html/body/div[1]/div/div[2]/div[1]/div/div[2]/div[2]/div[1]/div[3]/div[2]/div/div[2]/div/div" 
element = driver.find_element_by_xpath(player_perf_xpath) 
# Scroll the screen so the element is visible and can be clicked 
element.location_once_scrolled_into_view 
element.click() 
関連する問題