题1:浏览器基本操作(如打开浏览器、输入地址、网页最大化等)
driver = webdriver.Chrome() #获取浏览器对象
driver.get("http://www.baidu.com") #打开浏览器
driver.maximize_window() #设置浏览器最大化
driver.set_window_size(400,400) #自定义浏览器窗口大小
driver.get_screenshot_as_file('./pict.png') #浏览器窗口截图
driver.quit() #退出并关闭驱动程序
题 2:Selenium 元素定位方法:id 定位
driver.find_element_by_id('kw').send_keys('xiaohui')
题 3:Selenium 元素定位方法:name 定位
driver.find_element_by_name('wd').send_keys('xiaohui')
题 4:Selenium 元素定位方法:xpath 定位
driver.find_element_by_xpath('//*[@id="kw"]').send_keys('xiaohui')
题 5:Selenium 元素定位方法:css_selector 定位
driver.find_element_by_css_selector('#kw').send_keys('xiaohui')
题 6:Selenium 元素定位方法:link_text 定位
driver.find_element_by_link_text('新闻').click()
题 7:Selenium 元素定位方法:partial_link_text 定位
driver.find_element_by_partial_link_text('hao').click()
题 8:Selenium 元素定位方法:class_name 定位
driver.find_element_by_class_name('s_ipt').send_keys('xiaohui')
题 9:Selenium 元素定位方法:tag_name 定位
driver.find_element_by_tag_name('input').send_keys('oo')
题 10:Selenium 复数元素定位方法
driver.find_elements_by_class_name('mnav')[0].click() #其他类似
题 11:Selenium 之鼠标模拟操作
from selenium.webdriver.common.action_chains import ActionChains
#ActionChains 类鼠标操作的常用方法
ele = driver.find_element_by_link_text('更多产品')
ActionChains(driver).context_click(ele).perform() #右击
ActionChains(driver).double_click(ele).perform() #双击
ActionChains(driver).move_to_element(ele).perform() #鼠标悬停在一个元素上
......
'''
每个动作都要.perform() 才能生效
'''
题 12:Selenium 之键盘模拟操作
from selenium.webdriver.common.keys import Keys #导包
send_keys(Keys.BACK_SPACE) #删除键(BackSpace)
send_keys(Keys.SPACE) #空格键(Space)
send_keys(Keys.TAB) #制表键(Tab)
send_keys(Keys.ESCAPE) #回退键(Esc)
send_keys(Keys.ENTER) #回车键(Enter)
send_keys(Keys.CONTROL,'a') #全选(Ctrl+A)
send_keys(Keys.CONTROL,'c') #复制(Ctrl+C)
send_keys(Keys.CONTROL,'x') #剪切(Ctrl+X)
send_keys(Keys.CONTROL,'v') #粘贴(Ctrl+V)
......
题 13:Selenium 之时间等待处理
sleep(10) #强制等待10s
driver.implicitly_wait(50) #这个等待的时间是不固定的,最长的等待也莫过于我们设置的最大值
题 14:Selenium 之 sumbit()方法使用
driver.find_element_by_xpath('//*[@id="su"]').submit() #用于表单提交,type为submit
题 15:Selenium 之页面中下拉框的处理
from selenium.webdriver.support.select import Select #需导包
select = Select(driver.find_element_by_name('depart')) #实例化一个Select类的对象
select.select_by_index(1) # 通过index进行选择,index从0开始
select.select_by_value("London") # 通过value属性值进行选择
select.select_by_visible_text("London") # 通过标签显示的text进行选择
题 16:Selenium 之操作下拉滚动条方法
target = driver.find_element_by_id("id_keypair")
driver.execute_script("arguments[0].scrollIntoView();", target) #拖动到可见的元素去
题 17:Selenium 之frame框架切换
driver.switch_to.frame(1) #利用frame的脚标切换
driver.switch_to.frame("body") #利用frame的name值或id进行切换
driver.switch_to.frame(driver.find_element_by_xpath('/html/frameset/frame[2]'))
#用WebElement对象来定位
driver.switch_to.parent_frame() #从子frame切到父frame
driver.switch_to.default_content() #回到主文档
'''
注意点:已经切换到frame框架里面了,如果页面发生了刷新,需要重新定位进去
'''