1. 程式人生 > >selenium---條件選擇勾選框

selenium---條件選擇勾選框

測試需求:如下圖所示,要求根據裝置使用人條件去自動勾選頁面左側的勾選框


首先獲取到該頁裝置使用人和勾選框的元素列表,通過遍歷裝置使用人元素列表獲取裝置使用人文字,判斷名字,假如text="yanfukun",序號num加入到列表list中。再遍歷列表list,通過選擇框元素索引去勾選選擇框,即可完成上面需求,注意索引取值減一。

程式碼如下:

for x in range(1,7):
        ms = driver.find_element_by_xpath('//iframe[2]')
        driver.switch_to.frame(ms)
        time.sleep(1)
        driver.find_element_by_xpath('//div/a[contains(@onclick,"新增列印裝置")]').click()
        driver.switch_to.default_content()
        time.sleep(1)
        ms1 = driver.find_element_by_xpath('//div[@class="layui-layer-content"]/iframe')
        driver.switch_to.frame(ms1)
        
        driver.find_element_by_xpath('//div[@class="col-sm-7"]/input[@name="device_address"]').clear()
        driver.find_element_by_xpath('//div[@class="col-sm-7"]/input[@name="device_address"]').send_keys('localhost')
        driver.find_element_by_xpath('//div/input[@name="device_port"]').clear()
        driver.find_element_by_xpath('//div/input[@name="device_port"]').send_keys('8000')
        time.sleep(1)
        Select(driver.find_element_by_xpath('//div/select[@name="device_name"]')).select_by_value('Fax')
        time.sleep(1)
        Select(driver.find_element_by_xpath('//select[@name="print_format" and @required]')).select_by_value(str(x))
        driver.find_element_by_xpath('//div[@class="col-sm-7"]/input[@name="printer_name"]').clear()
        driver.find_element_by_xpath('//div[@class="col-sm-7"]/input[@name="printer_name"]').send_keys('yanfukun')
        driver.find_element_by_xpath('//div[@class="col-sm-4 col-sm-offset-5"]/button').click()
        driver.switch_to.default_content()
        time.sleep(4)
        
    ms2 = driver.find_element_by_xpath('//iframe[2]')
    driver.switch_to.frame(ms2)
    # ----------------核心邏輯程式碼------------------
    elements_1 = driver.find_elements_by_xpath('//tbody[1]/tr/td[5]')
    elements_2 = driver.find_elements_by_xpath('//td/input[@type="checkbox"]')
    #print(elements_2)
    list = []
    num = 1
    
    for x in elements_1:
        text1 = x.text
        #print(text1)
        if text1 == "yanfukun":
            list.append(num)
            num = num + 1
        else:
            num = num + 1
    print(list)
    for y in list:
        #print(y)
        elements_2[y-1].click()
        time.sleep(0.5)
    # ----------------核心邏輯程式碼------------------
    driver.find_element_by_xpath('//div/a[@onclick="printerObject.delContainerSelect()"]').click()
    driver.switch_to.default_content()
    driver.find_element_by_xpath('//div/a[@class="layui-layer-btn0"]').click()


相關推薦

selenium---條件選擇

測試需求:如下圖所示,要求根據裝置使用人條件去自動勾選頁面左側的勾選框首先獲取到該頁裝置使用人和勾選框的元素列表,通過遍歷裝置使用人元素列表獲取裝置使用人文字,判斷名字,假如text="yanfukun",序號num加入到列表list中。再遍歷列表list,通過選擇框元素索引

編輯,單,複相關操作

編輯框的一些操作 用clear方法清除該元素裡面的字串 #輸入框開啟的時候,已經有內容了 input1.clear() 獲取input元素裡面輸入的文字內容 #獲取輸入框裡面已經有的內容 input1.get_attrib

input控制元件的checkbox屬性自定義

思路 首先隱藏input預設勾選框 通過繫結label標籤,設定label的樣式來設定勾選框 效果 程式碼 # html中input的checkbox定義,使用for迴圈建立多個checkbox並繫結到label上 <div class="tab_1

樣式

/勾選框–start/ .checkbox{ display: none; } .checkbox-label{ display: inline-block; width: 12px; height: 12px; background: url("/videoP

選擇之後input輸入可以輸入內容

<form name="myform"> <input type="checkbox" name="box" id="box" value="1" onclick="check()" > <input type="text" name="aa" id="text"

js動態生成,可單可多

1、動態生成的位置,html程式碼: <body> <div class="show" id="show"> </div> </body> 2、這是ajax()的一部分,從資料庫取得所需的資料succes

Checkbox在cookie裡checked屬性的時間問題

Checkbox 物件代表一個 HTML 表單中的 一個選擇框。 比如在cookie裡的   儲存10天登入    這樣的選擇框。 這裡有一點不明白,因為Checkbox有一個屬性checked,如果設定了就預設是勾選了。 <td colspan

自定義UITableViewCell的保持

1//定義協議 @protocol FreeStockTableViewCellDelegate <NSObject> -(void)button:(UIButton*)button andStock_code:(NSString *)stockCode

Asp.net中滿足條件的複自動被選中(一)

一、有這樣一種需求:給單個使用者分組,分兩步走 1)載入所有使用者組 2)當前使用者已在的分組的複選框被勾選上 二、下面先演示一下想要的效果: 1、給單個使用者分組,選擇使用者: 2、彈框 查詢所有分類列表;把已分組的複選框選中,效果圖如下:

Selenium Webdriver選取多

程式碼如下: WebElement selectElement = driver.findElement(By.name("selectedList")); Select selection = new Select(selectElement);

input樣式

html程式碼: <div class="agreement-border"> <input type="checkbox" id="register-agreement" cl

MacOS 開發 - NSButton - (NSButtonTypeSwitch)

select itl 原創文章 文章 alt href change chan 組合 NSButtonTypeSwitch 就是勾選樣式 其他樣式可參考:http://blog.csdn.net/lovechris00/article/details/77976480all

Asp.net中滿足條件的複自動被選中(二)

被選複選框的靠前顯示 一、其他不多說,直接進入正題:我現在要把前一篇部落格中,被選中的複選框都靠前顯示,就是說要有圖一的效果做成圖二的效果:                二、實現思路   這也是一個難點,困擾了我很久,現在和大家一起分享:       實現思

iOS帶有的提示(封裝程式碼)

/* 使用說明 此提示框的使用方法和系統的提示框類似,完全封裝好原始碼,只需要呼叫兩句程式碼即可 主要需求:1.增加選中以後不再顯示按鈕需求;如果不需要可以遮蔽          2.所有字型

HTML的checkbox多---按條件選擇

如圖,當一個頁面上有多個checkbox,有時候需要根據條件來選擇我們需要的checkbox。 上面假設我們需要挑選出符合條件的公司名稱,我們先獲得所有的公司名,get webelements 獲取元素列表,get text獲取文字,用一個for迴圈遍歷可獲得所有的公司名

Python+selenium選擇彈出複

在用selenium定位元素的過程中,經常會遇到點選彈出複選框的操作,如下圖所示。 先匯入Select 點選複選框按鈕,使複選框彈出 用Select(s).select_by_visible_t

bootstrap-表單控件——復checkbox和單選擇按鈕radio

bootstrap-表單控件——復選框checkbox和單選擇按鈕radio1.運行效果如圖所示2.實現代碼如下<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-

jsp頁面帶有多的grid表格,如何將選中的行記錄所有列數據傳送到後臺。

blank href 後臺 aaa 數據 www hue 選中 cs6 忱分慕兇釉瀑懲防慌虜敝慘緩猩http://jz.docin.com/shuvg316 帳段繁臨市杉聞壞倫捶剎空合戀http://huiyi.docin.com/ogq2843 杏燎乘安轄任凸托飯承臨

angular2.x 下拉多選擇組件

下拉 round ice osi 界面 poi top iou open angular2.x - 5.x 的下拉多選框選擇組件 ng2 -- ng5。最近在學angular4,經常在交流群看見很多人問 下拉多選怎麽做。。。 今天就隨便寫的個。 組件源碼 百度雲 鏈接:

吾八哥學Selenium(三):操作復checkbox/單radio的方法

attr webdriver for in tex 如果 Go 測試的 har selected 復選框checkbox和單選框radio是web網站裏經常會使用到的兩個控件,那麽在web自動化測試的時候如何利用Selenium來操作這倆控件呢?今天我們就來簡單入門練習一下