Selenium給元素的屬性賦值

  • 我們在做UI自動化測試的過程中,某些情況會遇到驰唬,需要操作WebElement屬性的情況。

假設(shè)現(xiàn)在我們需要獲取一個元素的title屬性罐脊,我們可以先找到這個元素定嗓,然后利用get_attribute方法獲取屬性的值。
舉個栗子:

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
search_button = driver.find_element_by_id("su")  # 百度搜索按鈕
# 現(xiàn)在我們獲取百度一下的值
value = search_button.get_attribute("value")  # 獲取input標簽的value萍桌,也就是百度一下那4個字
print(value)   # 打印  百度一下


但是現(xiàn)在我們有了新的需求宵溅,我們需要改變百度一下這個按鈕里邊顯示的值。

先說一下原理上炎,原理是利用js的dom(document object model)恃逻,也就是文檔對象模型雏搂,獲取到input標簽, 然后通過js來改變這個input標簽的value屬性寇损。
js如下:

var button = document.getElementById("su");
button.setAttribute("su", "你猜一下");
//或者直接給value屬性賦值
document.getElementById("su").value = "你猜一下";

我們在Chrome DevelopmentTools里邊可以看到凸郑,“百度一下”變成了“你猜一下”~

image.png

那么為什么我們不直接用driver.execute_script()這個方法來執(zhí)行上述js語句呢,但是要知道矛市,因為dom里獲取元素的方式有限芙沥,并不如selenium那么方便,什么link_text這類的api都是無法使用的浊吏。

昨天偶然發(fā)現(xiàn)2個問題而昨,第一是execute_script函數(shù)是可以傳腳本參數(shù)進去的,第二個是selenium抓取到的元素可以作為js的dom元素處理找田。有了這2點之后呢歌憨,就可以干活了!


現(xiàn)在用WebElement的方法做到同樣的事情

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
search_button = driver.find_element_by_id("su")  # 百度搜索按鈕
# arguments[0]對應(yīng)的是第一個參數(shù)墩衙,可以理解為python里的%s傳參务嫡,與之類似
driver.execute_script("arguments[0].value = '你猜一下';", search_button)



補充一點, 如果需要獲取js語句執(zhí)行后的返回值漆改,在js語句前加"return" 就行了心铃,例如:

button_value = driver.execute_script("return arguments[0].value;", search_button)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市挫剑,隨后出現(xiàn)的幾起案子于个,更是在濱河造成了極大的恐慌,老刑警劉巖暮顺,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件厅篓,死亡現(xiàn)場離奇詭異,居然都是意外死亡捶码,警方通過查閱死者的電腦和手機羽氮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惫恼,“玉大人档押,你說我怎么就攤上這事∑泶浚” “怎么了令宿?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長腕窥。 經(jīng)常有香客問我粒没,道長,這世上最難降的妖魔是什么簇爆? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任癞松,我火速辦了婚禮爽撒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘响蓉。我一直安慰自己硕勿,他們只是感情好,可當我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布枫甲。 她就那樣靜靜地躺著源武,像睡著了一般。 火紅的嫁衣襯著肌膚如雪想幻。 梳的紋絲不亂的頭發(fā)上软能,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天,我揣著相機與錄音举畸,去河邊找鬼。 笑死凳枝,一個胖子當著我的面吹牛抄沮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播岖瑰,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼叛买,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蹋订?” 一聲冷哼從身側(cè)響起率挣,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎露戒,沒想到半個月后椒功,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡智什,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年动漾,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片荠锭。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡旱眯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出证九,到底是詐尸還是另有隱情删豺,我是刑警寧澤,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布愧怜,位于F島的核電站呀页,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏拥坛。R本人自食惡果不足惜赔桌,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一供炎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧疾党,春花似錦音诫、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至雹洗,卻和暖如春香罐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背时肿。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工庇茫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人螃成。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓旦签,卻偏偏與公主長得像,于是被迫代替她去往敵國和親寸宏。 傳聞我的和親對象是個殘疾皇子宁炫,可洞房花燭夜當晚...
    茶點故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽?zāi)J的外補...
    _Yfling閱讀 13,759評論 1 92
  • 轉(zhuǎn)自Selenium WebDriver注意:本章內(nèi)容官方團隊正在完善中氮凝。 介紹 WebDriver### Sel...
    抓兔子的貓閱讀 7,743評論 2 22
  • 一羔巢、JS前言 (1)認識JS 也許你已經(jīng)了解HTML標記(也稱為結(jié)構(gòu)),知道了CSS樣式(也稱為表示)罩阵,會使用HT...
    凜0_0閱讀 2,777評論 0 8
  • 鯨魚小姐是一只化身孤島的鯨稿壁,像歌詞那樣寫有著巨大的身影袍辞,魚蝦在身側(cè)穿行,也有飛鳥在背上停常摧。 她愛地中海的天晴搅吁,愛西...
    長卟噠閱讀 759評論 9 11
  • 學(xué)習(xí)就跟工作一樣,要是你有錢落午,有權(quán)力谎懦,還會去關(guān)注?如果你是天才學(xué)霸溃斋,還會去學(xué)習(xí)界拦?誰想上學(xué)?中國的教育制度該改改了梗劫,...
    零黎閱讀 222評論 0 0