2010-01-01 2 views
0

링크 목록이 있고 임의로 링크를 클릭한다고 가정 해 보겠습니다.Selenium-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

+1

아까 말한 것처럼 API에서는 getEval을 사용하여 페이지를 한 번 호출하여 DOM에있는 데이터를 수집하도록 할 수 있습니다. 결과를 돌려 보내라. – AutomatedTester

관련 문제