日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

实用selenium+python实现web自动化测试第八节

發(fā)布時間:2024/1/1 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实用selenium+python实现web自动化测试第八节 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本節(jié)重點:

調(diào)用js方法

·?execute_script(script,?*args)

在當前窗口/框架?同步執(zhí)行javaScript

腳本:JavaScript的執(zhí)行。

*參數(shù):適用任何JavaScript腳本。

使用:

driver.execute_script(‘document.title’)

?

?

使快播登陸用戶名輸入框標紅顯示:

#coding=utf-8

from?selenium?import?webdriver

import?time

?

driver = webdriver.Firefox()

driver.get("http://passport.kuaibo.com/login/?referrer=http%3A%2F%2Fvod.kuaibo.com%2F%3Ft%3Dhome")

?

#給用戶名的輸入框標紅

js="var q=document.getElementById(\"user_name\");q.style.border=\"1px solid red\";"

#調(diào)用js

driver.execute_script(js)

time.sleep(3)

?

driver.find_element_by_id("user_name").send_keys("username")

driver.find_element_by_id("user_pwd").send_keys("password")

driver.find_element_by_id("dl_an_submit").click()

time.sleep(3)

?

driver.quit()

js解釋:

q=document.getElementById(\"user_name\")

元素q的id?為user_name

q.style.border=\"1px?solid?red\

元素q的樣式,邊框為1個像素紅色

?

隱藏元素

js.html

<html>

????<head>

??????<meta?http-equiv="content-type"?content="text/html;charset=utf-8"?/>

??????<title>js</title>?????

??????<script?type="text/javascript"?async=""?src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

??????<link?href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css"?rel="stylesheet"?/>????????

??????<script?type="text/javascript">

????????$(document).ready(function(){

??????????$('#tooltip').tooltip({"placement": "right"});

????????});

??????</script>

????</head>

?

????<body>

??????<h3>js</h3>

??????<div?class="row-fluid">

????????<div?class="span6 well">????????

??????????<a?id="tooltip"?href="#"?data-toggle="tooltip"?title=" selenium-webdriver(python)">hover to see tooltip</a>

??????????<a?class="btn">Button</a>

????????</div>??????

??????</div>????????

????</body>

????<script?src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>

??</html>

?

(保持html文件與執(zhí)行腳本在同一目錄下)

執(zhí)行js一般有兩種場景:

·?一種是在頁面上直接執(zhí)行JS

·?另一種是在某個已經(jīng)定位的元素上執(zhí)行JS

?

#coding=utf-8

from?selenium?import?webdriver

import?time,os

?

driver = webdriver.Firefox()

file_path = ?'file:///'?+ os.path.abspath('js.html')

driver.get(file_path)

?

#######通過JS 隱藏選中的元素#########

#第一種方法:

driver.execute_script('$("#tooltip").fadeOut();')

time.sleep(5)

?

#第二種方法:

button = driver.find_element_by_class_name('btn')

driver.execute_script('$(arguments[0]).fadeOut()',button)

time.sleep(5)

?

driver.quit()

?

js解釋:

arguments對象,它是調(diào)用對象的一個特殊屬性,用來引用Arguments對象。Arugments對象就像數(shù)組。

fadeOut()?方法使用淡出效果來隱藏被選元素,假如該元素是隱藏的。

?

PS:可以看到j(luò)s?可以做selenium?做不到的事情,但是在什么樣的自動化的時候才能(或必須)要js幫忙,我還沒遇到過。不過js可以selenium完成更強大的功能,這是不容置疑的。

另外,之前沒有學(xué)過JS?,所以js代碼很陌生。如果有時間的話也建議各位同學(xué)補充這方面的知識。UI自動化離不開前端技術(shù)。

?

本節(jié)重點:

·?上傳文件

文件上傳操作也比較常見功能之一,上傳功能沒有用到新有方法或函數(shù),關(guān)鍵是思路。

上傳過程一般要打開一個本地窗口,從窗口選擇本地文件添加。所以,一般會卡在如何操作本地窗口添加上傳文件。

其實,在selenium??webdriver?沒我們想的那么復(fù)雜;只要定位上傳按鈕,通send_keys添加本地文件路徑就可以了。絕對路徑和相對路徑都可以,關(guān)鍵是上傳的文件存在。下面通地例子演示。

upload_file.html

<html>

<head>

<meta?http-equiv="content-type"?content="text/html;charset=utf-8"?/>

<title>upload_file</title>

<script?type="text/javascript"?async=""

src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js

"></script>

<link?href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css"?rel="stylesheet"?/>

<script?type="text/javascript">

</script>

</head>

<body>

<div?class="row-fluid">

<div?class="span6 well">

<h3>upload_file</h3>

<input?type="file"?name="file"?/>

</div>

</div>

</body>

<script?src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>

</html>

?

upload.py

#coding=utf-8

from?selenium?import?webdriver

import?os,time

?

driver = webdriver.Firefox()

?

#腳本要與upload_file.html同一目錄

file_path = ?'file:///'?+ os.path.abspath('upload_file.html')

driver.get(file_path)

?

#定位上傳按鈕,添加本地文件

driver.find_element_by_name("file").send_keys('D:\\selenium_use_case\upload_file.txt')

time.sleep(2)

?

driver.quit()

?

?

其它有些應(yīng)用不好找,所以就自己創(chuàng)建頁面,這樣雖然麻煩,但腳本代碼突出重點。

這里找一139郵箱的實例,有帳號的同學(xué)可以測試一下~!

(登陸基礎(chǔ)版的139郵箱,網(wǎng)盤模塊上傳文件。)

139upload.py

?

#coding=utf-8

from?selenium?import?webdriver

import?os,time

?

driver = webdriver.Firefox()

?

driver.get("http://m.mail.10086.cn")

driver.implicitly_wait(30)

?

#登陸

driver.find_element_by_id("ur").send_keys("手機號")

driver.find_element_by_id("pw").send_keys("密碼")

driver.find_element_by_class_name("loading_btn").click()

time.sleep(3)

?

#進入139網(wǎng)盤模塊

driver.find_element_by_xpath("/html/body/div[3]/a[9]/span[2]").click()

time.sleep(3)

?

#上傳文件

driver.find_element_by_id("id_file").send_keys('D:\\selenium_use_case\upload_file.txt')

time.sleep(5)

?

driver.quit()

轉(zhuǎn)載于:https://www.cnblogs.com/longyu4356/p/9342368.html

總結(jié)

以上是生活随笔為你收集整理的实用selenium+python实现web自动化测试第八节的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。