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 webdriverfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom 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_handlesprint(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()
 


原文地址:https://www.cnblogs.com/llqxixi/p/12391826.html

时间: 2024-10-07 16:33:56

webdriver中的三大等待及窗口的切换的相关文章

selenium中的三大等待

等待时做什么,为什么使用等待 在做自动化测试,设计测试用例的时候,有时下一步的操作会依赖上一步的结果或者内容,上一步操作成功之后才能进行下一步操作等,这时候,我们就需要使用等待,来判断上一步操作是否完成,什么时候可以进行下一步操作. 1.强制等待 sleep(),单位是秒使用方法:sleep(X),等待X秒后,进行下一步操作.无论条件成立与否,都要等待到时间截至,才能进行下一步操作缺点:不能准确把握需要等待的时间(有时操作还未完成,等待就结束了,导致报错:有时操作已经完成了,但等待时间还没有到,

WebDriver中在多个浏览器窗口切换

package webdriver; import java.util.logging.Logger; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.interactions.Actions; import org.testng.annotation

selenium 常见元素操作:三大等待

selenium 常见元素操作 三大等待 三大切换(iframe,window,alert) 下拉列表 鼠标和键盘 js+ dom应用() 上传操作 强制等待:time.sleep()        (译:私立破) 必须等待固定时间后才可以往下运行 from selenium import webdriver import time # 强制等待需要导入time,使用其中的sleep方法 # 强制等待 sleep(译:私立破) # 打开谷歌浏览器,建立会话.启动Chromedriver.exe

delphi程序向另一个可执行程序发消息(使用GetForegroundWindow; 找出当前操作系统中活动的第一个窗口)

function FindWindowThroughWindowText(WindowText: string): THandle;var  hCurrentWindow: THandle;  cnt: Integer;  WindowTitle: array [0 .. 254] of Char;begin  Result := INVALID_HANDLE_VALUE; // 返回值预设为无效的句柄  hCurrentWindow := GetForegroundWindow; // 找出当

转:总结Selenium WebDriver中一些鼠标和键盘事件的使用

在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 WebDeriver 中,有一个专门的类来负责实现这些测试场景,那就是 Actions 类,在使用该类的过程中会配合使用到 Keys 枚举以及 Mouse. Keyboard.CompositeAction 等类. 其次,在实际测试过程中,可能会遇到某些按键没办法使用 Actions.Keys 等类来

转:Selenium WebDriver 中鼠标和键盘事件分析及扩展

在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 WebDeriver 中,有一个专门的类来负责实现这些测试场景,那就是 Actions 类,在使用该类的过程中会配合使用到 Keys 枚举以及 Mouse. Keyboard.CompositeAction 等类. 其次,在实际测试过程中,可能会遇到某些按键没办法使用 Actions.Keys 等类来

总结Selenium WebDriver中一些鼠标和键盘事件的使用

在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 WebDeriver 中,有一个专门的类来负责实现这些测试场景,那就是 Actions 类,在使用该类的过程中会配合使用到 Keys 枚举以及 Mouse. Keyboard.CompositeAction 等类. 其次,在实际测试过程中,可能会遇到某些按键没办法使用 Actions.Keys 等类来

Selenium WebDriver 中鼠标和键盘事件分析及扩展(转)

本文将总结 Selenium WebDriver 中的一些鼠标和键盘事件的使用,以及组合键的使用,并且将介绍 WebDriver 中没有实现的键盘事件(Keys 枚举中没有列举的按键)的扩展.举例说明扩展 Alt+PrtSc 组合键来截取当前活动窗口并将剪切板图像保存到文件. 概念 在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 WebDerive

Selenium WebDriver中一些鼠标和键盘事件的使用

转自:http://www.ithov.com/linux/133271.shtml 在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 WebDeriver 中,有一个专门的类来负责实现这些测试场景,那就是 Actions 类,在使用该类的过程中会配合使用到 Keys 枚举以及 Mouse. Keyboard.CompositeAction 等类.