2017-12-17 12 views
1

このpageのすべてのリンクに移動していますが、ページカウンタが機能していません。それがどんなアイデアなのか?ジョブが1ページに移動し、ページがカウントダウンされない

問題を解決することを期待してxpathを調整しようとしました。なぜこれをやっているのですか?

driver = webdriver.Chrome() 

def page_counter(): 
    for x in range(1000): 
     yield x 

count = page_counter() 
driver.get('https://www.betfair.com.au/exchange/plus/football') 
elements = [x.get_attribute("href") for x in 
driver.find_elements_by_xpath("//nav//a[starts-with(@href, ('football'))]")] 
shuffle(elements) 

import operator 

import collections 
links = dict((next(count) + 1, e) for e in elements) 

desc_links = collections.OrderedDict(sorted(links.items(), reverse=True)) 

for key, value in desc_links.items(): 
    driver.get(value) 
    print('At Page: ' + str(key)) 
+1

' 'ページカウンタは、問題の正確な定義はないworking''ではありません。あなたの質問を予想されるものと実際の結果のサンプルで更新してください。 – quamrana

+0

@quamranaの出力は空白で、ページには移動しません。 ... –

+0

コードの部分だけをページカウンターに関係なくテストしたところ、ページの順序が逆になりました。ウェブサイトとのやりとりについて別途調査する必要があります。 – quamrana

答えて

0

elements空のリストになり、それはあなたのループが動作していない理由です。

は、から始まるfootballのリンク要素にアクセスできるようにする必要があります。それを行うための可能な方法の一つは、ヘッダ要素が見えるようにするのを待つWebDriverWaitを使用することになります。

from selenium import webdriver 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 


driver = webdriver.Chrome() 

driver.get('https://www.betfair.com.au/exchange/plus/football') 

wait = WebDriverWait(driver, 10) 
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".container .page-content header"))) 

elements = [x.get_attribute("href") for x in driver.find_elements_by_xpath("//nav//a[starts-with(@href, ('football'))]")] 
関連する問題