zoukankan      html  css  js  c++  java
  • webdriver中的三大等待及窗口的切换

    一、傻等

    适用于等待5S以内

    time.sleep(seconds)

    二、隐性等待   

    implicitly_wait(30)  一个会话只需要调用一次即可,设置等待上限,比如30S,如果你在30秒内元素出现了,就不等了,去执行下一行代码,如果30秒还没有出现,就报错,超时

    driver = webdriver.Chrome()
    driver.implicitly_wait(30)

    driver.get("http://www.baidu.com")

    driver.find_element_by_id("kw").send_keys("博客园")
    driver.find_element_by_id("su").click()

    三、
    显性等待
    条件:等待  '//a[text()="_腾讯课堂"]'   可见之后,我再点击它
    3.1、等待操作 3.2、条件:可见
    30秒时间 1秒去检查一次,元素是否可见===周期
    from selenium import webdriver
    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By

    driver = webdriver.Chorme()
    driver.get(https://www.baidu.com/)
    # 访问百度首页
    driver.get("https://www.baidu.com/")
    # 获取窗口数量
    handles = driver.window_handles
    # 清除输入框的信息
    driver.find_element_by_id("kw").click()
    # 输入腾讯课堂
    driver.find_element_by_id("kw").send_keys("腾讯课堂")
    # 点击百度一下
    driver.find_element_by_id("su").click()
    # 显性等待条件表达
    loc = (By.XPATH,'//div[@id="1"]//h3/a[contains(text(),"职业培训")]')
    # 显性等待 等到这个元素出现
    WebDriverWait(driver,20).until(EC.visibility_of_element_located(loc))
    # 进入官网,本操作带来了新窗口的出现
    driver.find_element(*loc).click()
    # 确认新窗口出现了再去做其他操作
    WebDriverWait(driver,20).until(EC.new_window_is_opened(handles))
    # 再次获取窗口的数量
    handles = driver.window_handles
    print(handles) # 打印窗口信息
    # 切换到新窗口
    driver.switch_to.window(handles[-1])
    print(driver.current_window_handle)
    # 等待界面可见
    # loc = (By.XPATH,'//div[@class="header-index-category-text"]')
    loc = (By.XPATH,'//input[@class="mod-search__input"]')

    WebDriverWait(driver,15).until(EC.visibility_of_element_located(loc))
    # 在输入框输入python
    # driver.find_element(*loc).click()
    driver.find_element(*loc).send_keys("python")
    # 点击搜索
    driver.find_element_by_xpath('//i[@class= "icon-font i-search-bold"]').click()
    # 切回去的
    driver.switch_to.window(wins[0]) # 回到主窗口。
    
    
     





  • 相关阅读:
    在R语言中轻松创建关联网络
    在R语言中显示美丽的数据摘要summary统计信息
    R语言中不同类型的聚类方法比较
    R语言中的划分聚类模型
    R语言解释生存分析中危险率和风险率的变化
    Stata估算观测数据的风险比
    Stata 中Mata的st_view函数
    R语言多臂试验
    R语言使用倾向评分提高RCT(随机对照试验)的效率
    R语言在RCT中调整基线时对错误指定的稳健性
  • 原文地址:https://www.cnblogs.com/llqxixi/p/12391826.html
Copyright © 2011-2022 走看看