文章目录
1、定位元素1.1 id定位元素1.2 xpath定位元素1.3 class定位元素1.4 link定位元素1.5 css定位元素 2、元素操作2.1 send_keys输入值2.2 click 点击2.3 clear 清空元素2.4 back 回到前一个页面2.5 forward 前进一个页面2.6 refresh 刷新2.7 submit 提交2.8 title 获取页面的标题2.9 current_url 当前页面的url2.10 text 获取页面超链接的文本值2.11 tag_name 页面标签类型2.12 is_enabled 页面元素是否可编辑2.13 isDisplayed 判断元素是否用户可见2.14 get_attribute 得到页面属性对应的值 3、浏览器设置3.1 设置窗口最大化3.2 设置窗口大小3.3 返回元素的大小3.4 关闭窗口,退出程序 4、鼠标事件4.1 context_click 右击操作4.2 move_to_element 鼠标悬停4.3 double_click 双击4.4 drag_and_drop 元素拖动 5、键盘事件5.1 ENTER5.2 TAB5.3 BACK_SPACE5.4 SPACE 6、 设置等待6.1 Sleep休眠方式 7、 获取最新话柄7.1 获取最后一个页面的话柄 8、 调用javascript8.1 获取最后一个页面的话柄 9、 操作cookie9.1 Get_cookie9.2 add_cookie9.3 delete_cookie9.4 delete_all_cookies1、定位元素
1.1 id定位元素
from selenium import webdriverbrowser = webdriver.Chrome('/Applications/Python 3.8/chromedriver') # chromedriver路径browser.maximize_window() # 窗口最大化browser.get('url')browser.find_element_by_id(file_name).send_keys(file_path)
1.2 xpath定位元素
browser.find_element_by_xpath(file_name).send_keys(file_path)
1.3 class定位元素
browser.find_element_by_class_name(file_name).send_keys(file_path)
1.4 link定位元素
browser.find_element_by_link_text(“详情”)
1.5 css定位元素
browser.find_element_by_css_selector("#hus").send_keys("selenium2")
2、元素操作
2.1 send_keys输入值
browser.find_element_by_id('accNo').send_keys(“4225438745541121154”)
2.2 click 点击
browser.find_element_by_id('accNo').click()
2.3 clear 清空元素
browser.find_element_by_id('accNo').clear()
2.4 back 回到前一个页面
browser.get(URL1)browser.get(URL2) # 同一个页面,从URL1调到URL2browser.back() # 从URL2返回到URL1中
2.5 forward 前进一个页面
browser.get(URL1)browser.get(URL2) # 同一个页面,从URL1调到URL2browser.back() # 从URL2返回到URL1中browser.forward() # 从URL1中前进到URL2
2.6 refresh 刷新
browser.get(URL1)time.sleep(3)browser.refresh() # 刷新当前页面
2.7 submit 提交
browser.get(URL1)browser.find_element_by_id(file_name).send_keys(file_path)browser.submit()
2.8 title 获取页面的标题
browser.get(URL1)print("页面标题是:%s" % browser.title)
2.9 current_url 当前页面的url
browser.get(URL1)url=driver.current_urlprint("当前页面的url是:%s" % url)
2.10 text 获取页面超链接的文本值
browser.get(URL1)link1 = browser.find_element_by_link_text(“详情”)text = link1.textprint("文本值是:%s" % link1)
2.11 tag_name 页面标签类型
browser.get(URL1)link1 = browser.find_element_by_link_text(“详情”)tag=link1.tag_name#页面标签类型print(tag)
2.12 is_enabled 页面元素是否可编辑
browser.get(URL1)link1 = browser.find_element_by_link_text(“详情”)tag=link1.is_enabled()print(tag)
2.13 isDisplayed 判断元素是否用户可见
browser.get(URL1)link1 = browser.find_element_by_link_text(“详情”)tag=link1.is_displayed()print(tag)
2.14 get_attribute 得到页面属性对应的值
browser.get(URL1)link1 = browser.find_element_by_link_text(“详情”)tag=link1.get_attribute("name")#得到name属性对应的值print(tag)
3、浏览器设置
3.1 设置窗口最大化
browser.get(URL1)browser.maximize_window()
3.2 设置窗口大小
browser.get(URL1)browser.set_window_size(920,1024)
3.3 返回元素的大小
browser.get(URL1)a = browser.find_element_by_css_selector("#kw").sizeprint(a)
3.4 关闭窗口,退出程序
browser.close() # 关闭浏览器browser.quit() # 退出程序
4、鼠标事件
4.1 context_click 右击操作
browser.get(URL1)browser.maximize_window()right_click = browser.find_element_by_css_selector("#kw") # 定位到需要右击的元素ActionChains(browser).context_click(right_click).perform() # 右击,不加perform不显示右击的内容
4.2 move_to_element 鼠标悬停
browser.get(URL1)browser.maximize_window()above = browser.find_element_by_link_text("设置")#定位到鼠标悬停的元素ActionChains(browser).move_to_element(above).perform()
4.3 double_click 双击
browser.get(URL1)browser.maximize_window()double_click = browser.find_element_by_id("abank")#定位到鼠标悬停的元素ActionChains(browser).double_click (double_click ).perform()
4.4 drag_and_drop 元素拖动
browser.get(URL1)browser.maximize_window()above = browser.find_element_by_link_text("新闻")#定位到原元素target = browser.find_element_by_id("kw")#定位到目标元素ActionChains(browser).drag_and_drop(above,target).perform()#把原元素拖动到目标元素上去
5、键盘事件
5.1 ENTER
from mon.keys import Keys # 导入对应的模块包browser.get(URL1)browser.maximize_window()browser.find_element_by_id('bank').send_keys(Keys.ENTER)
5.2 TAB
from mon.keys import Keys # 导入对应的模块包browser.get(URL1)browser.maximize_window()browser.find_element_by_id('bank').send_keys(Keys.TAB)
5.3 BACK_SPACE
from mon.keys import Keys # 导入对应的模块包browser.get(URL1)browser.maximize_window()browser.find_element_by_id('bank').send_keys(Keys.BACK_SPACE)
5.4 SPACE
from mon.keys import Keys # 导入对应的模块包browser.get(URL1)browser.maximize_window()browser.find_element_by_id('bank').send_keys(Keys.SPACE)
6、 设置等待
6.1 Sleep休眠方式
from mon.keys import Keys # 导入对应的模块包browser.get(URL1)browser.maximize_window()time.sleep(2)browser.find_element_by_id('bank').send_keys(Keys.ENTER)time.sleep(2)
7、 获取最新话柄
7.1 获取最后一个页面的话柄
from mon.keys import Keys # 导入对应的模块包browser.get(URL1)browser.maximize_window()time.sleep(1)browser.switch_to.window(browser.window_handles[-1]) # 最后打开的页面
8、 调用javascript
8.1 获取最后一个页面的话柄
from selenium import webdriverfrom time import sleepbrowser= webdriver.Chrome()browser.get('URL')#设置浏览器窗口大小browser.maximize_window()#搜索内容browser.find_element_by_id('kw').send_keys('selenium')browser.find_element_by_id('su').click()sleep(2)js = "$('input[id=%s]').attr('readonly',false)" % time_id # 3.jQuery,设置为false#执行script语句browser.execute_script(js)sleep(3)
9、 操作cookie
9.1 Get_cookie
from selenium import webdriverdriver = webdriver.Chrome()driver.get("")cookie = driver.get_cookies()#h获取页面的cookieprint(cookie)
9.2 add_cookie
from selenium import webdriverdriver = webdriver.Chrome()driver.get("")driver.add_cookie({'name':'userName','value':'rudy'})#添加一个cookie值cookie = driver.get_cookies()#h获取页面的cookiefor i in cookie:print('%s >> %s' % (i['name'],i['value']))driver.quit()
9.3 delete_cookie
from selenium import webdriverdriver = webdriver.Chrome()driver.get("")driver.add_cookie({'name':'userName','value':'rudy'})#添加一个cookie值cookie = driver.get_cookies()#h获取页面的cookiefor i in cookie:print('%s >> %s' % (i['name'],i['value']))driver.delete_cookie('userName')#删除名字为userName的cookiecookie2 = driver.get_cookies()for i in cookie2:print('%s >> %s' % (i['name'],i['value']))driver.quit()
9.4 delete_all_cookies
from selenium import webdriverdriver = webdriver.Chrome()driver.get("")driver.add_cookie({'name':'userName','value':'rudy'})#添加一个cookie值cookie = driver.get_cookies()#h获取页面的cookiefor i in cookie:print('%s >> %s' % (i['name'],i['value']))driver.delete_all_cookies()#删除所有的cookiecookie2 = driver.get_cookies()for i in cookie2:print('%s >> %s' % (i['name'],i['value']))driver.quit()