selenium4-定位组元素
总体思路:find_elements() 该方法将所有定位到的元素放到一个列表中,再通过列表的下标定位到具体元素。
例1、使用tag name定位到百度搜索框,并输入selenium关键字
service = Service(r"C:\Users\USER\AppData\Local\Programs\Python\Python37\chromedriver.exe") driver = webdriver.Chrome(service=service) driver.get("http://www.baidu.com") driver.find_elements(By.TAG_NAME, 'input')[7].send_keys('selenium') # 通过下标7取到第8个<input>标签,即百度搜索框 sleep(3) driver.quit()
例2、验证复选框的全选功能是否正常
通过开发者工具分析发现,每个复选框都有一个name属性,且值都是ids[]
思路1、首先定位全选的复选框,然后单击该复选框;接下来要定位每一个复选框,然后分别判断它们是否处于选中状态。
思路2、先定位组元素,然后循环操作列表中的组元素。(显然这种更简单)
lsts = driver.find_elements(By.NAME, 'ids[]') for lst in lsts: # 如果元素被选中,输出pass;否则,输出fail if lst.is_selected(): print('pass') else: print('fail')