html页面的iframe的切换:
- iframe框架在html页面:实际就是多个html页面的相互嵌套;如果存在多个,则操作对象一直停留在主文档页面; 如果需要操作子文档页面则需要实现iframe的切换操作;
- 驱动器对象.switch_to.frame(iframe的id/name/定位的对象)如果iframe中不存在id、不存在name的属性的话,则可以通过其他方式定位该iframe ,定位到的对象直接传入到参数中即可
- 在实际过程中,一定注意多级iframe的切换以及并级的iframe切换,这两者切换的方式是完全不同的;
- 可以通过driver.switch_to.default_content() :切换到主文档界面 driver.switch_to.parent_frame()切换到上一级父级iframe
- 当如果两个iframe并级存在主文档的话那么两个方法调用的结果实际是等价的
- 注意:如果当前的iframe框架对象窗口进行关闭操作后,那么驱动器对象会回到上一级父iframe的操作窗口上;当然如果在实际开发过程中存在多级iframe而iframe关闭后不清楚其处于的状态,则可以每关闭一个iframe全部重新回到主文档iframe状态;
下拉列表框的操作:
- 1.直接定位,直接根据option中的属性进行定位
- 2.二次定位
- 3.Select对象定位方式:使用该种方式需要引入模块:from selenium.webdriver.support.select import Select
- 需要传入一个参数,该参数必须是一个Select(下拉列表看的标签)的标签对象;
- select_by_index:表示的是所有option的索引,并不是对应的option中的id值;
- select_by_value:表示的是option中的value属性所对应的值;
- select_by_visiable_text:表示的是标签外的文本内容;
- 注意:以上三个方法执行后直接选择指定的值,不需要在进行调用click方法;
- 4.可以通过键盘的上下键完成选择
键盘操作:如果需要操作键盘事件的话则需要导入键盘模块,键盘模块导入方式
-
from selenium.webdriver.common.keys import Keys
-
#退格操作
get_webdriver.find_element(By.ID,'company').send_keys(Keys.BACK_SPACE*3)
#全选
get_webdriver.find_element(By.ID,'company').send_keys(Keys.CONTROL,"a")
#复制
get_webdriver.find_element(By.ID,'company').send_keys(Keys.CONTROL,"c")
#粘贴
get_webdriver.find_element(By.ID,'linkman').send_keys(Keys.CONTROL,"v")
标签:WebDriver,webdriver,keys,Keys,API,对象,切换,iframe,识别 From: https://www.cnblogs.com/lirongyu-test/p/16744869.html