【问题标题】:Selenium-rc: Is there a way to send a buffer of requestsSelenium-rc:有没有办法发送请求缓冲区
【发布时间】:2010-01-01 14:16:25
【问题描述】:

假设我有一个链接列表并想随机点击一个链接:

<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)

这个解决方案的主要问题是它向 selenium 发送了许多请求。我的问题是:有没有办法将所有这些请求保存在缓冲区中并立即发送?

【问题讨论】:

    标签: selenium buffer selenium-rc


    【解决方案1】:

    您是否将文本用于任何事情?

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

    上面的代码总是会点击一个随机链接,而不必每次都获取链接的文本。

    【讨论】:

    • 对,但这只能解决这种情况。如果您在一页上只有很多sel.get_text。缓冲区仍然会派上用场
    • 据我记得在 api 中没有类似的东西,但是您可以使用 getEval 对页面进行一次调用,并告诉它收集您在 DOM 中的数据并返回结果
    猜你喜欢
    • 2023-03-08
    • 2013-01-16
    • 2019-02-20
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    相关资源
    最近更新 更多