1. 頁面中巢狀了iframe後,iframe中的元素無法定位到,可通過selenium中「driver.switch_to.frame(***)」切換到iframe中,再進行定位元素,
2. 切到iframe中後,可通過「driver.switch_to.parent_frame()」切到上一層表單,也可通過「driver.switch_to.default_content()」切到最外層表單,也是主頁面
html檔案如下:
使用者名稱:
python表單切換**:
from selenium import webdriver
from selenium.webdriver.common.by import by
import os, time
driver = webdriver.chrome()
file_path = os.getcwd() + os.sep + "frame.html"
driver.get(file_path)
#定位外面的使用者名稱輸入
ele_name01 = driver.find_element(by.xpath, "//input[@name = 'jike']").send_keys("jike")
#切換到iframe
ele_iframe = driver.find_element_by_xpath("//iframe[@id='if']")
driver.switch_to.frame(ele_iframe)
#定位輸入框
try:
input_ele = driver.find_element(by.id, "kw")
input_ele.clear()
input_ele.send_keys("selenium")
time.sleep(3)
except exception as e:
print(e)
#跳出當前表單,返回上一層表單
#driver.switch_to.parent_frame()
#跳出當前表單,返回最外層表單,切換到主頁面
driver.switch_to.default_content()
#再次定位name元素
try:
ele_name02 = driver.find_element(by.xpath, "//input[@name = 'jike']").send_keys("python")
time.sleep(3)
except exception as e:
print(e)
driver.close()
selenium多表單切換
在web頁面中經常使用frame iframe表單巢狀頁面的應用,webdriver只能在乙個頁面上定位元素,對於frame iframe這樣的內嵌式頁面,webdriver無法直接定位到相應的元素,需要通過switch to.frame 方法將目前定位的主體切換到frame iframe表單的內嵌...
selenium多表單切換
在 web 應用中經常會遇到 frame 巢狀頁面的應用,頁 webdriver 每次只能在乙個頁面上識別元素,對於 frame 巢狀內的頁面上的元素,直接定位是定位是定位不到的。這個時候就需要通過switch to frame 方法將當前定位的主體切換了 frame 裡。切換到 iframe id...
多表單切換 frame iframe切換
1.進入frame driver driver.get url driver.switch to.frame if 也可使用f12 copyxpath,把定位物件傳給方法driver.find element by id 即可定位之前定位不到的元素 2.回到上一層框架 driver.switch t...