Selenium-frame标签
(frameset、frame、iframe)
与其他普通的标签没有任何区别,不会影响正常定位,需要切换进去才能操作其中的元素
frmae的:id,name
frame的:索引
frame的:webelement:browser.find_element_by_id(“udesk_iframe”)
代码示例:
下面用快递100官方网站作为示例
browser = webdriver.Chrome(executable_path=r'C:\Users\Administrator\Desktop\chromedriver.exe')
browser.get("https://www.kuaidi100.com/?from=openv") #打开快递100网站
browser.implicitly_wait(5)
kefu=browser.find_element_by_id("uDeskTarget") #客服按钮
#kefu=browser.find_element(By.ID,"uDeskTarget")
kefu.click()
#切换frame #//textarea[@rows='1']
#presence_of_element_located传元组:
browser.switch_to.frame("udesk_iframe") #切换frame
WebDriverWait(browser,10,0.5).until(lambda x:x.find_element(By.XPATH,"//textarea[@rows='1']")).send_keys("123456") #第一种方法
#WebDriverWait(browser,10,0.3).until(EC.visibility_of_element_located((By.XPATH,"//textarea[@rows='1']"))).send_keys("123456") # 第二种方法
#WebDriverWait(browser,10,0.3).until(EC.presence_of_element_located((By.XPATH,"//textarea[@rows='1']"))).send_keys("123456") # 第三种方法
browser.find_element_by_xpath("//textarea[@rows='1']").send_keys("你好") #对话框输入你好
#跳出frame
browser.switch_to.default_content()
下拉框定位
#下拉框
#browser.find_element_by_xpath("//*[@id='Selector']/option[6]")