找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
# 9)css 定位【重要】
# driver.find_element_by_css_selector('#kw').send_keys('多测师')  #id选择器定位
# driver.find_element_by_css_selector('.s_ipt').send_keys('多测师')  #class选择器
# driver.find_element_by_css_selector('[name=wd]').send_keys('多测师')
# driver.find_element_by_css_selector('[class=s_ipt]').send_keys('多测师')
# driver.find_element_by_css_selector('[name=wd][class=s_ipt]').send_keys('多测师')  #组合定位
# driver.find_element_by_css_selector('[autocomplete=off]').send_keys('多测师')
# driver.find_element_by_css_selector('span>input').send_keys('多测师')   #上级定位
# driver.find_element_by_css_selector('form>span>input').send_keys('多测师')  #上上级定位


# 14、定位文本框和密码框
# from selenium import webdriver
# from time import sleep
#
# driver = webdriver.Chrome()
# driver.get('http://cms.duoceshi.cn/cms/manage/login.do')
# driver.maximize_window()
# sleep(2)
# driver.find_element_by_id('userAccount').send_keys('admin')
# driver.find_element_by_id('loginPwd').send_keys('123456')
# driver.find_element_by_id('loginBtn').click()    #点击按钮
# sleep(5)
# driver.close()    #关闭浏览器


# 15、通过send_keys 方法上传文件
# from selenium import webdriver
# from time import sleep
#
# driver = webdriver.Chrome()

# driver.get('file:///D:/lesson2/%E7%AC%AC%E4%BA%8C%E4%B8%AA%E6%9C%88%E7%9A%84%E8%AF%BE%E4%BB%B6/20.11.16%E5%8F%B7-18%E5%8F%B7%20%E7%AC%AC%E4%BA%8C%E4%B8%AA%E6%9C%88%E4%B9%8B%E7%AC%AC11%E8%AE%B2%EF%BC%9A%E5%A4%9A%E6%B5%8B%E5%B8%88ui%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E4%B9%8Bselenium/elem/upload_file.html')
# driver.maximize_window()
# driver.find_element_by_id('file').send_keys(r'C:\Users\Administrator\Desktop\app.txt')


# 16、定位百度隐藏框【重要】
# from selenium import webdriver
# from time import sleep
# from selenium.webdriver.common.action_chains import ActionChains  #导入ActionChains
#
# driver = webdriver.Chrome()
# driver.maximize_window()
# driver.get('https://www.baidu.com')
# sleep(2)

# 第一种方法
# driver.find_element_by_id('s-usersetting-top').click()
# driver.find_element_by_link_text('搜索设置').click()
# sleep(2)
# driver.find_element_by_link_text('保存设置').click()
# sleep(2)
# alert = driver.switch_to.alert       #【进入到alaert弹框】
# print(alert.text)         #打印alert弹框上的内容  打印的内容:已经记录下您的使用偏好
#
# alert.accept()     #点击确定按钮
# alert.dismiss()   #点击取消按钮

# 第二种方法 mouse orver
# mouse = driver.find_element_by_id('s-usersetting-top')   #定位设置赋值给mouse
# ActionChains(driver).move_to_element(mouse).perform()     #move_to_element就是移送到设置这个网页元素上面
# #perform()执行
# driver.find_element_by_link_text('搜索设置').click()
# sleep(2)
# driver.find_element_by_link_text('保存设置').click()
# sleep(2)
# alert = driver.switch_to.alert       #【进入到alaert弹框】
# print(alert.text)         #打印alert弹框上的内容  打印的内容:已经记录下您的使用偏好
#
# alert.accept()     #点击确定按钮
# alert.dismiss()   #点击取消按钮


# 17、selenium 当中的等待【重要】
'''
1、线程等待 sleep(5)  不管有没有加载出来都会的等待5s
2、隐式等待 implicity_wait(5) 智能等待,作用域全局,如果在5s内全部网页加载完成,
则会往下执行,超过5s 会报错
3、显示等待 WebDriverWait 作用于特定的元素,每个0.5s 去书刷新和寻找一次,如果找不到
则往下执行,超过5s报错
'''
# from selenium import webdriver
# from time import sleep
# from selenium.webdriver.support import expected_conditions as EC
# from selenium.webdriver.common.by import By    #导入By类
# from selenium.webdriver.support.wait import  WebDriverWait
#
# driver = webdriver.Chrome()
# driver.maximize_window()
# driver.get('https://www.baidu.com')
# driver.maximize_window()
# sleep(3)       #线程等待
# driver.implicitly_wait(5)    #隐式等待
# driver.find_element_by_id('kw').send_keys('多测师')
# WebDriverWait(driver,5,poll_frequency=0.5).until(EC.presence_of_all_elements_located((By.ID,'su')))
# sleep(10)
# driver.close()


# 18、获取文本信息和标题
# from selenium import webdriver
# from time import sleep
#
# driver = webdriver.Chrome()
# driver.get('https://www.baidu.com')
# driver.maximize_window()
# sleep(3)

# 1)获取页面文本信息
# value=driver.find_element_by_xpath('//*[@id="hotsearch-content-wrapper"]/li[1]/a/span[2]').text
# print(value)    #庆祝香港回归25周年大会
# if value=='庆祝香港回归25周年大会':
#     print('获取成功')
# else:
#     print('获取失败')
#
# 2)获取title
# 第一种断言方法
# title= driver.title
# if title =='百度一下,你就知道':
#     print('获取成功')
# else:
#     print('获取失败')

# 第二种断言方法
# assert title=='百度一下,你就知道'    #不会打印

# 19、刷新窗口,打开一个新的窗口,返回上一步,获取窗口大小
# 1)获取窗口大小
# s=driver.get_window_size()
# print(s)     #{'width': 1296, 'height': 696}
#
# # 2)返回上一步
# driver.find_element_by_id('kw').send_keys('多测师')
# sleep(5)
# driver.find_element_by_id('su').click()   #点击百度按钮
# sleep(5)
# driver.back()    #返回上一步
# sleep(10)
# 3)刷新窗口
# driver.refresh()

# 4)打开一个新的窗口
# win = 'window.open("http://www.jd.com")'
# driver.execute_script(win)


# 20、切换一个新窗口【重要】
# from selenium import webdriver
# from time import sleep
#
# driver = webdriver.Chrome()
#
# # 打开第一个窗口
# driver.get('https://www.baidu.com')
# driver.maximize_window()
# sleep(3)

# 打开第二个窗口
# win = 'window.open("http://www.jd.com")'
# driver.execute_script(win)

# title = driver.title
# print(title)     #百度一下,你就知道【当前窗口的主窗口还是百度】

# driver.find_element_by_id('kw').send_keys('123')    #验证到底在那个窗口,在百度窗口

# handle = driver.current_window_handle
#获取当前百度窗口的handle  句柄==》一个用标识对象或者标识符
# print(handle)    #CDwindow-ACA516BA77B096CF0DDC57335813E701
#
# handles = driver.window_handles    #获取所有窗口的句柄
# print(handles)     #['CDwindow-E132FA6BE33A3D748476F386D062FF51', 'CDwindow-675F04496D6E7770E83B251031973543']

# 1)通过索引值去切换窗口
# driver.switch_to.window(handles[1])
# title1 = driver.title
# print(title1)      #京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物!

# sleep(5)
# driver.find_element_by_xpath('//*[@id="navitems-group1"]/li[1]/a').click()   #已切换到东京页面

# 2)通过for循环切换
# for i in handles:
#     if i!=handle:      #判断如果i不是当但百度的句柄就切换窗口
#         driver.switch_to.window(i)   #切换到京东页面
#         title2 = driver.title
#         print(title2)          #京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物!


# 21、下拉框【重要】
from selenium import webdriver
from selenium.webdriver.support.select import Select

driver = webdriver.Chrome()
driver.get('https://www.ctrip.com/')
driver.maximize_window()

s = driver.find_element_by_id('J_roomCountList')   #定位到房间
#第一种定位 索引定位 0开始
Select(s).select_by_index(4)                        #房间数是5

#通过value 值进行定位
Select(s).select_by_value('6')            #房间是6

#通过可见的文本信息进行定位
Select(s).select_by_visible_text('7间')    #房间数是7间


# 22、警告型弹框【重要】
# from selenium import webdriver
# from time import sleep
#
# driver = webdriver.Chrome()
# driver.get('file:///D:/lesson2/%E7%AC%AC%E4%BA%8C%E4%B8%AA%E6%9C%88%E7%9A%84%E8%AF%BE%E4%BB%B6/20.11.16%E5%8F%B7-18%E5%8F%B7%20%E7%AC%AC%E4%BA%8C%E4%B8%AA%E6%9C%88%E4%B9%8B%E7%AC%AC11%E8%AE%B2%EF%BC%9A%E5%A4%9A%E6%B5%8B%E5%B8%88ui%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E4%B9%8Bselenium/elem/alert.html')
# driver.maximize_window()

# alert = driver.switch_to.alert
# print(alert.text)      # 技术大牛你好啊
#
# sleep(5)
# alert.accept()   #点击确定按钮
# sleep(5)
# alert.accept()   #再次确定按钮
# alert.dismiss()  #点击取消按钮
# sleep(5)
# alert.accept()   #点击取消后点击确定按钮

# 23、输入型弹框
# from selenium import webdriver
# from time import sleep
#
# driver = webdriver.Chrome()
# driver.get('file:///D:/lesson2/%E7%AC%AC%E4%BA%8C%E4%B8%AA%E6%9C%88%E7%9A%84%E8%AF%BE%E4%BB%B6/20.11.16%E5%8F%B7-18%E5%8F%B7%20%E7%AC%AC%E4%BA%8C%E4%B8%AA%E6%9C%88%E4%B9%8B%E7%AC%AC11%E8%AE%B2%EF%BC%9A%E5%A4%9A%E6%B5%8B%E5%B8%88ui%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E4%B9%8Bselenium/elem/prompt.html')
# driver.maximize_window()
#
# driver.find_element_by_css_selector('.alert').click()
# sleep(5)
# alert = driver.switch_to.alert
# alert.send_keys('http://www.baidu.com')      #输入网址
# sleep(5)
# alert.accept()      #点击确定
# # alert.dismiss()     #点击取消
#
# sleep(10)
# driver.close()


# 24、确认型弹框
# from selenium import webdriver
# from time import sleep
#
# driver = webdriver.Chrome()
# driver.get('file:///D:/lesson2/%E7%AC%AC%E4%BA%8C%E4%B8%AA%E6%9C%88%E7%9A%84%E8%AF%BE%E4%BB%B6/20.11.16%E5%8F%B7-18%E5%8F%B7%20%E7%AC%AC%E4%BA%8C%E4%B8%AA%E6%9C%88%E4%B9%8B%E7%AC%AC11%E8%AE%B2%EF%BC%9A%E5%A4%9A%E6%B5%8B%E5%B8%88ui%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E5%AE%9E%E6%88%98%E4%B9%8Bselenium/elem/enter.html')
# driver.maximize_window()
#
# driver.find_element_by_css_selector('.alert').click()
# sleep(5)
# alert = driver.switch_to.alert
# print(alert.text)      #这是一个确认消息框示例,是否执行删除操作?
# # alert.accept()   #点击确定
# alert.dismiss()  #点击取消


# 25、iframe 框【重要】
# from selenium import webdriver
# from time import sleep
#
# driver = webdriver.Chrome()
# driver.get('http://mail.163.com')
# driver.maximize_window()

# 第一种方法定位iframe方法
# iframe = driver.find_element_by_xpath('//*[@id="loginDiv"]/iframe[1]')   #定位到iframe框
# driver.switch_to.frame(iframe)    #进入iframe框
# sleep(3)

# 第二种方法定位iframe  页面的iframe框索引从0开始
# driver.switch_to.frame(0)


# 第三种方法定位iframe  通过tag标签
# iframe = driver.find_elements_by_tag_name('iframe')       #定位到iframe 框
# driver.switch_to.frame(iframe)
#
# sleep(5)
# driver.find_element_by_name('email').send_keys('13923876846')
# driver.find_element_by_name('password').send_keys('Duanzl888')
# driver.find_element_by_id('dologin').click()
# sleep(5)
# driver.close()


# 26、滚动条
# from selenium import webdriver
# from time import sleep
#
# driver = webdriver.Chrome()
# driver.get('https://www.jd.com')
# driver.maximize_window()

#往下滑的操作
# js1 = 'window.scrollTo(0,20000)'
# driver.execute_script(js1)
#
# sleep(5)
#往上滑到顶部
# js2 = 'window.scrollTo(0,0)'
# driver.execute_script(js2)


# 27、Keys类
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.keys import Keys    #导入Keys类

driver = webdriver.Chrome()
driver.get('https://baidu.com')
driver.maximize_window()

driver.find_element_by_id('kw').send_keys('pythonn')
sleep(2)
driver.find_element_by_id('kw').send_keys(Keys.BACK_SPACE)   #删除最后一个字符
sleep(2)
driver.find_element_by_id('kw').send_keys(Keys.CONTROL,'a')    #全选
sleep(2)
driver.find_element_by_id('kw').send_keys(Keys.CONTROL,'x')   #剪切
sleep(2)
driver.find_element_by_id('kw').send_keys(Keys.CONTROL,'v')  #粘贴
driver.find_element_by_id('su').click()   #点击百度按钮

# 第二种封装一个公共元素
def find_element(m,*n):
    '''
    封装一个定位元素的公共方法
    :param m:
    :param n:
    :return:
    '''
    return driver.find_element_by_id(m).send_keys(n)

if __name__ == '__main__':
    find_element('kw','pythonn')
    find_element('kw',Keys.BACK_SPACE)   #删除最后一个字符
    find_element('kw',Keys.CONTROL,'a')
    find_element('kw', Keys.CONTROL, 'x')
    find_element('kw', Keys.CONTROL, 'v')
    find_element('kw', Keys.ENTER)

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册