1、欣赏器操纵

1)欣赏器最大化

driver.maximize_window()

2)树立欣赏器宽和高

driver.set_window_size(400,800)

3)遏制欣赏器进步、畏缩

driver.forward()

driver.back()

2、大略东西的定位

find_element_by_id()—-独一

find_element_by_name()—-独一

find_element_by_linx_text()—-笔墨超链接,笔墨定位

find_element_by_partial_link_text()—-笔墨超链接,局部笔墨定位

find_element_by_class_name()

find_element_by_tag_name())—-标签定位

find_element_by_xpath()

find_element_by_css_selector()

3、操抵制象元素

clear()—————废除实质,如默许用户名和暗号

click()————– 模仿鼠圈点击操纵

send_keys()——向输出框输出

submit()————提交表单

4、WebElement接口常用本领

size——————–归来元素尺寸

text———————-获得元素文本消息

get_attribute(name)————-获得元素某个属性值

is_displayde———————–该元素用户能否看来

5、鼠标事变

ActionChains类用来操纵鼠标事变

context_click()——————鼠标右击

double_click()——————鼠标双击

click()—————————–鼠圈点击

click_and_hold()—————按住鼠标左键不动

move_to_element(目的元素)————————挪动到某个元素

move_by_offset(xoffset,yoffset)——————–挪动到某个坐标

drag_and_drop(source,target)——将元素从开始source挪动到尽头target

drag_and_drop_by_offset(source,xoffset,yoffset)——-依照坐标挪动

release() 在某个元素上开释鼠标

ActionChains的实行道理

挪用ActionChains本领的功夫,用户动作不会连忙实行,而是将一切操纵放在一个部队中,当实行perform()本领时,依照放入部队的程序进步先出实行

如:

ActionChains(driver).context_click(操抵制象).perform()

6、键盘事变

Keys类操纵键盘事变

常用的拉拢键

send_keys(Keys.CONTROL,‘a’)—————-全选

send_keys(Keys.CONTROL,‘c’)—————-复制

send_keys(Keys.CONTROL,‘v’)—————-粘贴

send_keys(Keys.CONTROL,‘x’)—————-剪切

常用的非拉拢键

send_keys(Keys.ENTER)——————————–回车键

send_keys(Keys.BACK_SPACE)———————-简略键

send_keys(Keys.SPACE)——————————–空格键

send_keys(Keys.TAB)————————————构图键

send_keys(Keys.ESCAPE)——————————回退键

send_keys(Keys.F5)—————————————革新键

7、赢得页面URL和title

1)赢得暂时页面title,确定页面跳转能否适合预期

title = driver.title

2)赢得暂时URL,普遍用来尝试重定向

url = driver.current_url

8、树立等候功夫

sleep():树立恒定睡眠功夫。Python的time包供给sleep本领

implicitly_wait():webdriver供给的一个隐性等候的功夫,在一个功夫段内等候页面加载实行最长功夫等候,超时则抛出特殊

WebDriverWait():webdriver供给的另一个本领,在树立功夫内,默许每隔一段功夫去检验和测定页面元素能否生存,即使胜过树立功夫检验和测定不到则抛出特殊。

9、定位一组东西

find_elements归来的是一个list

定位一组东西,普遍运用于下列场景:

批量操抵制象,比方将页面上的CheckBox都选上

1)find_elements_by_tag_name()

2)find_element_by_css_selector()

10、定位frame中的东西

对准frame嵌套的情景,运用switch_to.frame(id/name/xpath)切换到被嵌套的frame中

11、多窗口处置

要想在多个窗口之间切换,开始要赢得每一个窗口的独一标识标记(句柄)。经过赢得的句柄来辨别分各别的窗口,进而对不同学口上的元素举行操纵

driver.current_window_handle———————-赢得暂时窗口的句柄

driver.window_handles——————————–赢得一切窗口的句柄

driver.switch_to_handle(“句柄”)———————切换回句柄分属的窗口

driver.close()———————————————封闭暂时窗口

driver.quit()———————————————–封闭一切窗口

12、下拉菜单处置

先定位到下拉菜单,再定位选项

1)下拉菜单需点击本领表露选项

有两次点击举措,第一次点击下拉菜单,第二次点击选项

2)下拉菜单不需点击,鼠标放上去就会表露选项,则不妨运用move_to_element()本领定位

3)对准下拉菜单标签是select的

导出Select类:from selenium.webdriver.support.select import Select

select_by_index(index)—————————按照index属性定位选项,index从0发端

select_by_value(value)—————————按照value属性定位

select_by_visible_text(text)———————-按照选项文本值来定位

first_selected_option()—————————-采用第一个选项

deselect_by_index(index)—————————按照index属性废除选定的选项,index从0发端

deselect_by_value(value)—————————按照value属性

deselect_by_visible_text(text)———————-按照选项文本值

deselect_all()——————————————–废除一切选项

13、上传文献

上传进程普遍是翻开一个体例的window窗口,从窗口采用文献增添,普遍会卡在怎样操纵Window窗口。

1)上传控件标签为input

只有定位上传按钮,经过send_keys()增添文献路途就不妨了。

2)上传控件标签为非input

不妨借助第三方东西:Autolt

14、载入文献

webdriver承诺树立默许载入路途,进而不妨跳过载入弹窗提醒

1)chrome载入

思绪:范例化一个option东西

树立摆设,并加载到option中

启用欣赏器,点击载入链接

download.default_directory:树立载入路途

profile.default_content_settings.popups:树立为 0 遏止弹出窗口

2)Firefox载入

对于Firefox,须要咱们树立其FirefoxProfile:

browser.download.dir:指定载入路途

browser.download.folderList:树立成2表白运用自设置载入路途;树立成0表白载入到桌面;树立成1表白载入到默许路途

browser.download.manager.showWhenStarting:在发端载入时能否表露载入处置器

browser.helperApps.neverAsk.saveToDisk:对所给出文献典型不复弹出框举行咨询

Firefox须要对准每种文献典型举行树立,这边须要咱们查问对应文献的MIME典型,不妨察看MIME 参考画册举行查问

15、挪用js和遏制欣赏器震动条

1)webdriver供给了execute_script(script,*args)本领挪用js

2)遏制欣赏器震动条

window.scrollTo()本领用来树立欣赏器窗口震动条的水宽厚笔直场所。本领的第一个参数表白程度的左间距,第二个参数表白笔直的上边距;经过javascript树立欣赏器窗口的震动条场所

js=“window.scrollTo(100,450);”

driver.execute_script(js)

16、处置cookie

driver.get_cookies()——————————-赢得一切cookie

driver.get_cookie(name)————————-赢得name属性的cookie

driver.add_cookie(cookie_dic)—————–增添cookie(cookie方法为字典)

driver.delete_cookie(name)———————简略一定cookie

driver.delete_all_cookies()———————-简略一切cookie