Selenuim 常用代码
Guide
1忽略浏览器安全保护时,最后别忘记开开,还有别忘了释放资源
如果作为普通用户,安全策略本身没有权限更改时,还是谨慎使用
2Webdriver,浏览器版本一定要匹配,不然都是眼泪
3判断加载成功否不要单纯靠设置sleep,凭概率运气,尤其是复杂点的页面,要设flag,判断标识;
4如果用IE的要是100%显示比例,不然第一下就过不去,没办法公司限制太多
5Xpath有时不太稳,排除失误,明明写的是对的,也会出不来,考虑结合模仿用户操作模块,结合鼠标键盘看看能不能过去
6这个东西常规的头几步开启用用好些,太复杂的不稳定因素太多,不如要来HTTP的API权限
7数据源不会太复杂,记记Path,元素,没必要用小型DB,写excel,别写脚本里,link总是很长的,页面元素变化周期短,写个数据源里每次更新也方便,代码也好维护些
总之,开机启动脚本;登录系统过多过于重复输入各种账户密码;登录系统前几步太多时,不得不用时用用。
##################################
#coding=utf-8
from selenium import webdriver
import webbrowser
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
DesiredCapabilities.INTERNETEXPLORER['ignoreProtectedModeSettings'] = True
import xml.dom.minidom
from lettuce import *
from lettuce_webdriver.util import assert_false
from lettuce_webdriver.util import AssertContextManager
from lettuce import before, world
import lettuce_webdriver.webdriver
import Tkinter
import requests
import bs4
from bs4 import BeautifulSoup
import sys
import time
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
driver.find_element_by_id("kw").send_keys("Selenium2")
driver.find_element_by_id("su").click()
driver.quit()
##################
browser=webdriver.Ie()
browser.maximize_window() # 窗口最大化
browser.get('https://www.baidu.com') # 在当前浏览器中访问百度
# 新开一个窗口,通过执行js来新开一个窗口
js='window.open("https://www.sogou.com");'
browser.execute_script(js)
print (browser.current_window_handle) # 输出当前窗口句柄()
handles = browser.window_handles # 获取当前窗口句柄集合(列表类型)
print ( handles) # 输出句柄集合
# for handle in handles:# 切换窗口(切换到)
# if handle!=browser.current_window_handle:
# print ('switch to ',handle)
# browser.switch_to_window(handle)
# print (browser.current_window_handle )# 输出当前窗口句柄()
# # break
# browser.close() #关闭当前窗口()
# browser.switch_to_window(handles[0]) #切换回窗口
# browser.close() #关闭当前窗口
#time.sleep(10)
#browser.quit()
DesiredCapabilities.INTERNETEXPLORER['ignoreProtectedModeSettings'] = False