代码之家  ›  专栏  ›  技术社区  ›  LetzerWille

搜索后获取href

  •  0
  • LetzerWille  · 技术社区  · 7 年前

    搜索成功后,我需要获取搜索后页面上显示的HREF。

    enter = present (driver, By.CSS_SELECTOR, "#search-submit")
    driver.execute_script ("arguments[0].click()", enter)
    elems = driver.find_elements_by_xpath ("//a[@href]")
    # this for loop does not work 
    for elem in elems:
         print(elem.get_attribute ("href"))
    

    我正在

    StaleElementReferenceException:消息:的元素引用已过时

    driver.refresh() 无法解决问题。 driver.back() 将撤消搜索结果。还能做些什么?

    更新

    Florent B’s.解决方案就是出路。今天我做了大量的测试,
    工作起来很有魅力,速度更快

    enter = self.present (driver, By.CSS_SELECTOR, "#search-submit")
    driver.execute_script ("arguments[0].click()", enter)
    **WebDriverWait (driver, 20).until (EC.staleness_of (enter))**
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Moe Ghafari    7 年前

    打电话前请先睡眠30秒:

    elems = driver.find_elements_by_xpath ("//a[@href]")
    

    很高兴这有帮助。

    编辑:

    您可以通过execute\u脚本执行此脚本

    "return window.jQuery && jQuery.active == 0"
    

    如果您希望避免睡眠,那么如果所有ajax请求都已完成,则返回true