测试需求:如下图所示,要求根据设备使用人条件去自动勾选页面左侧的勾选框
首先获取到该页设备使用人和勾选框的元素列表,通过遍历设备使用人元素列表获取设备使用人文本,判断名字,假如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()