Selenium特殊操作
Python连接数据库:
http://www.jb51.net/article/115358.htm Python中模块pymysql查询结果后如何获取字段列表
# 打开数据库连接
db = pymysql.connect("123.56.116.251","cpxdev","jwsoho3102","cpx",use_unicode=True, charset="utf8")
#连接名,用户名,密码,数据库名称
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
sql = "SELECT a.name,b.name FROM shops AS a,material AS b WHERE a.name = '测试-cpx单店one' AND a.id=b.shopId;"
# 使用 execute() 方法执行 SQL 查询
cursor.execute(sql)
results = cursor.fetchall()
print(results)
cursor.execute('SET NAMES utf8;')
cursor.execute('SET CHARACTER SET utf8;')
cursor.execute('SET character_set_connection=utf8;')
for row in results:
print(row[1])
# 关闭数据库连接
db.close()
selenium_xpath_css操作:
self.driver.find_elements_by_xpath("//div[starts-with(@class,'l-box-select')]/div/table/tbody/tr")
start-with:开始位置包含
Js = 'document.getElementById("warehouse-showStoreInView").contentWindow.document.getElementById("createStoreIn").click();'
Selenium文件上传下载:
AutoIt目前最新是v3版本,这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作它利用模拟键盘按键鼠标移动和窗口/控件的组合来实现自动化任务。
AutoIt Windows Info 用于帮助我们识Windows控件信息。
Compile Script to.exe 用于将AutoIt生成 exe 执行文件。
Run Script 用于执行AutoIt脚本。
SciTE Script Editor 用于编写AutoIt脚本。
#断言截图
error_message = self.driver.find_element_by_id('confirm').text
print error_message
self.assertNotIn('确认', error_message) # 用assertIn(a,b)方法来断言 a in b '用户名或密码错误'在error_message里
self.driver.get_screenshot_as_file("E:\Report\\login_pwd_error.jpg")
#获取当前窗口句柄
# now_handle = self.driver.current_window_handle
# print ("当前窗口:"+now_handle)
# # 获取所有窗口句柄
# all_handles = self.driver.window_handles
# for handle in all_handles:
# if handle != now_handle:
# # 输出待选择的窗口句柄
# print ("所选窗口:"+handle)
# self.driver.switch_to.window(handle)
#日期控件用JS完成处理,清除禁止input输入的redonly属性
# js = "document.getElementById('txtBeginDate').removeAttribute('readonly')" # 1.原生js,移除属性
# js = "$('input[id=txtBeginDate]').removeAttr('readonly')" # 2.jQuery,移除属性
# js = "$('input[id=txtBeginDate]').attr('readonly',false)" # 3.jQuery,设置为false
# js_ru_date = "$('input[id=businessTimes]').attr('readonly','')" # 4.jQuery,设置为空(同3)
# js_date_fz = "document.getElementById('businessTimes').value='2018-04-18';"
# self.driver.execute_script(js_ru_date)
# self.driver.execute_script(js_date_fz)
#明天日期转换为str
tomorrow = datetime.today() + timedelta(1)
str_tomorrow = tomorrow.strftime('%Y-%m-%d')
selenium+grid
参考地址:
https://www.seleniumhq.org/download/ 下载selenium-server jar包;
http://www.51testing.com/html/74/n-3721974.html ; https://blog.csdn.net/qq_32782059/article/details/72884814 ; https://blog.csdn.net/zb455405775/article/details/80652842
selenium-grid 分布式 兼容测试:
#浏览器数组
lists=['chrome','internet explorer','firefox']
#通过不同的浏览器执行脚本
for browser in lists:
driver = webdriver.Remote(
command_executor='http://127.0.0.1:4444/wd/hub',
desired_capabilities={'platform': 'ANY',
'browserName':browser,
'version': '',
'javascriptEnabled': True
})
|
def test_on_nodes(): threads = [] for bw in browsers: driver = createDriver(bw) t = Thread(target=start_test, args=(driver,)) threads.append(t) for t in threads: t.start() for t in threads: t.join() print("测试运行完成")
java+selenium环境搭建
selenium Jar包下载地址:
testNG通过注解、分组、序列和参数化等多种方式组织和执行自动化的测试脚本;将case加入到testng.xml中,可调整用例执行顺序;可通过@Test(expectedExceptions)来判断期待异常,并且可判断ErrorMessage; 分组测试(groups);传递测试参数机制,参数化测试;忽略测试(enabled=false);依赖测试(dependsOnMethods='');测试报告:html、xml两种类型。0-10级别,verbose=‘2’。