層級定位
1、定位一組對象 find_elements()
舉例:
current = os.getcwd() chrome_driver_path =os.path.join(current,'../webdriver/chromedriver') page_path = os.path.join(current,'../pages/element_samples.html') #本地html文件 driver = webdriver.Chrome(executable_path=chrome_driver_path) driver.get('file://'+page_path) # driver.implicitly_wait(20) elems = driver.find_elements(By.XPATH,'//*/input[@type="radio"]') print(type(elems),len(elems)) i =0 if elems: for el in elems: el.click() print('第%d次勾選'%(i+1)) i+= 1 time.sleep(2) else: print("沒有找到該元素") driver.quit()
2、兩個find_element層級定位:

driver.find_element(By.XPATH,'//div[@id="radio"]').find_element(By.XPATH,'//input[class="AliBaBa"]').click()
3、多層網頁嵌套(頁面有a,b兩個frame,其中b在a內,要定位b的內容則需要先定位到a,再切到b)
1)switch_to_frame()方法,表示把當前定位主題切換到frame里,其參數必須是id或name
舉例:
frame1 = driver.find_element(By.XPATH,'//iframe') driver.switch_to.frame(frame1) driver.find_element(By.XPATH,'//*/body/input[@id="input1"]').send_keys('dsd') driver.find_element(By.XPATH,'//*/body/input[2]').send_keys('dsd') # driver.switch_to_frame('frame1') #方法目前還可用,但是已有新方法 time.sleep(3) driver.quit()
2)再跳回到主框架頁:driver.switch_to.default_content() #跳轉主框架頁