Selenium之webdriverAPI
2021-03-29 17:26
标签:xxx css oca 处理 sele rop top ref 一个 Selenium之webdriverAPI 1.py文件webdriverAPI from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains ##鼠标操作 from selenium.webdriver.support.select import Select ####Select模块 driver = webdriver.Chrome() driver.get(‘http://ui.imdsx.cn/uitester/‘) ### import time time.sleep(1) driver.execute_script(‘window.scrollTo(0,0);‘) time.sleep(1) # print(driver.window_handles) # el = driver.find_element_by_css_selector(‘[href="http://www.soscw.com/new-index/"]‘) # el.click() # print(driver.window_handles) # 获取全部tag的标签名 # handles = driver.window_handles # driver.switch_to_window(handles[1]) # driver.switch_to.window(handles[1]) # # driver.find_element_by_css_selector(‘#newtag‘).send_keys(‘xxxx‘) # 退出驱动 # driver.quit() # # 关闭页面 关闭时如果指针切换了 必须手动切回来 不会默认切回来 # driver.close() # driver.switch_to.window(handles[0]) # driver.find_element_by_css_selector(‘#i1‘).send_keys(‘xxxx‘) 多层html # name = top-frame # 如果iframe有name属性 或 id属性则 可以直接在frame种填写 Iframe中通过src可以嵌套html # driver.switch_to.frame(eleObj) # top-frame # # driver.switch_to.frame(‘top-frame‘) # import time # time.sleep(2) # 如果没有name和id属性 frame() 可以接受elementOBj # eleObj = driver.find_element_by_css_selector(‘[src="http://www.soscw.com/new-index/"]‘) # # 切换到 top-frame # # 输入newtag文案 # driver.find_element_by_css_selector(‘#newtag‘).send_keys(‘xxxx‘) # # 切换到百度frame # driver.switch_to.frame(‘baidu-frame‘) # time.sleep(2) # # 输入文案 # driver.find_element_by_css_selector(‘#kw‘).send_keys(‘xxxx‘) # # 返回到你的上一层 # driver.switch_to.parent_frame() # # 清空input的数据 # driver.find_element_by_css_selector(‘#newtag‘).clear() # # 在进入百度的frame # driver.switch_to.frame(‘baidu-frame‘) # # 在清除百度的输入 # driver.find_element_by_css_selector(‘#kw‘).clear() # # 返回到最外层 # driver.switch_to.default_content() # driver.find_element_by_css_selector(‘#i1‘).send_keys(‘xxxxxx‘) # 最大化浏览器 # driver.maximize_window() # driver.find_element_by_link_text(‘跳转大师兄博客地址‘).click() # #浏览器的后退键 # driver.back() # # 浏览器的前进按钮 # driver.forward() # # 浏览器的刷新按钮 # driver.refresh() # 获取当前浏览器的大小 # print(driver.get_window_size()) # # 设置浏览器的大小 # driver.set_window_size(100,100) # 截图 # driver.get_screenshot_as_file(‘pngdemo.png‘) 系统级别的弹出框 # driver.find_element_by_css_selector(‘#alert‘).click() # # alert处理 # print(driver.switch_to.alert.text) ##弹框文本 # driver.switch_to.alert.accept() #确认 # driver.switch_to.alert.dismiss() # 取消 悬浮显示 # el = driver.find_element_by_css_selector(‘#dis1‘) # # 判断元素是否在页面上展示 # print(el.is_displayed()) # # 暂时让按钮显示出来 # driver.execute_script("document.getElementById(‘dis1‘).style.display=‘‘;") # print(el.is_displayed()) # driver.find_element_by_css_selector(‘#dis1‘).click() # 鼠标操作 # 获取要悬浮的元素 # el = driver.find_element_by_css_selector(‘#a‘) # dis1 = driver.find_element_by_css_selector(‘#dis1‘) # # 鼠标操作 链式变成 # ActionChains(driver).move_to_element(el).click(dis1).perform() ###实例化 先移动再点击 perform() 执行 拼图 鼠标拖拽 # source = driver.find_element_by_css_selector(‘#dragger‘) # target = driver.find_element_by_css_selector(‘#i1‘) # ActionChains(driver).drag_and_drop(source,target).perform() ###鼠标拖拽 也可以使用click_and_hold() release() 可多次书写最后执行 select 下拉框 # 实例化select 接受一个select标签 如果不是select标签则抛异常 # select = driver.find_element_by_xpath(‘//select[1]‘) # # 获取标签是option的元素 # eles = select.find_elements_by_tag_name(‘option‘) # for opt in eles: # print(opt.get_attribute(‘value‘)) 获取vlaue属性(1.2.3.4) # # 通过select标签的option中的value字段定位 # Select(select).select_by_value(‘4‘) # # 一个标签中如果还要子集 可以在继续在这个标签的基础上进行find # Select(select).select_by_index(3) # 等待 # 第一种就是time.sleep() 这种是最low的 # 隐士等待 driver.implicitly_wait(10) 基本不用 # 显示等待 from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By # WebDriverWait(driver,10,0.5).until(EC.visibility_of_element_located((By.ID,‘i1‘))) ele =WebDriverWait(driver,60,5).until(EC.presence_of_element_located((By.ID,‘i11‘))) ele.send_keys(‘xxxxx‘) css = ‘css=>#i1‘ get_element(css) Selenium之webdriverAPI 标签:xxx css oca 处理 sele rop top ref 一个 原文地址:https://www.cnblogs.com/cslw5566/p/9297299.html