Python3学习笔记_web自动化基础六_三大切换_20200716
三大切换:
窗口切换:
driver.switch_to_window(driver.window_handles[-1])
iframe切换
如何判断该页面是否有iframe?
看定位到的元素的祖先元素是否包含iframe【确认有没有iframe,看下面的bar,有没有两个html/iframe】
如果有,要想定位里面的元素,必须进行iframe切换
iframe 切换
driver.switch_to.frame(iframe_elem)
iframe 进入之后,如何退回来?
driver.switch_to.default_content()
切到父级的iframe
driver.switch_to.parent_content()
iframe 显性等待加切换:
wait=WebDriverWait(driver,20,poll_frequency=0.5)
wait.until(expected_conditions.frame_to_be_available_and_switch_to_it(iframe_elem)) ##这里要传参数,是因为可能有多个iframe
alert 切换:
driver.switch_to.alert
alert 切换加等待:
WebDriverWait(driver,20,poll_frequency=0.5).until(
expected_conditions.alert_is_present() #这里不需要传参数,是因为在一个页面中,alert只会有一个
)
鼠标操作
点击
双击
悬停
拖拽
右击
点击的两种方式
1、e.click()
2、ActionChains(driver).click(e).perform()
按住不动
ActionChains(driver).click_and_hold(e).perform()
右击
ActionChains(driver).context_click(e).perform()
双击
ActionChains(driver).double_click(e).perform()
#拖拽,e1是起始元素,e2是终止元素
ActionChains(driver).drag_and_drop(e1,e2).perform()
ActionChains 的链式调用
键盘操作
e.send_keys(Keys.ENTER)
面试题:
提交数据的3种方式:
定位提交按钮,点击
发送回车按键
submit() 【前提是提交的数据input_ele必须要在form表单中,如何来判断有没有在呢?看该元素在开发者模式的bar中是否有出现form】
select 选择
方法1:点击option元素
方法2:使用Select()类选择
元素无法找到有哪些原因?
NoSuchElement:
1、检查元素定位方式是否正确:把元素定位方式拷贝到开发者模式下,去看是否能找到元素
2、没加等待,加强制等待去调试一下,看是否能找到
3、检查有没有在这个页面
第一种:有没有在这个窗口
第二种:是不是在一个iframe当中
mac请求本地文件,本地文件前面需要加上:file:
导入库的快捷方式:option + Enter