2010-01-01 63 views
0

的緩衝可以說我有一個鏈接列表,並希望點擊任意鏈接:硒-RC:有沒有辦法將請求發送

<div id="divA"> 
    <a> first link </a> 
    <a> second link </a> 
    ... 
</div> 

它是不是最聰明的方式(如果你有更好的解決辦法,請告訴我),但我目前做的是(大約):

l = [] 
for i in range(numOfLinks): 
    xpath = '//div[@id="divA"]/a[%d]'%i 
    txt = sel.getText(xpath) 
    l.append(xpath, txt) 

xpath,linkName = random.choice(l) 
sel.click(xpath) 

這個解決方案的主要問題是,它發出大量請求硒。我的問題是:有沒有辦法將所有這些請求保存在緩衝區中並一次發送?

回答

0

你是否在使用任何文本?

numOfLinks = sel.get_xpath_count('//div[@id="divA"]/a') 
random.randrange(1,numOfLinks) 
sel.click('//div[@id="divA"]/a[%d]'%random.randrange(1,numOfLinks)) 

上面的代碼將始終點擊一個隨機鏈接,而不必每次都獲取鏈接的文本。

+0

沒錯,但這隻能解決這種情況。如果你在一個頁面上只有很多'sel.get_text'。緩衝區仍然會派上用場 – Guy 2010-01-01 15:08:17

+1

據我所知,在api中沒有類似的東西,但是你可以使用getEval對頁面進行一次調用,並告訴它收集你在DOM之後的數據,並且返回結果 – AutomatedTester 2010-01-01 15:33:45

相關問題