1、定位语句不对
2、是否加等待
3、元素嵌套在iframe/frame元素标签中(切换frame) 多层嵌套frame/iframe
4、要定位的元素非当前窗口(切换句柄)
5、其他
一、弹窗处理
driver.switch_to.alert
import timefrom selenium.webdriver.common.by import Byfrom selenium import webdriverdriver=webdriver.Chrome()driver.get(r"C:\Users\xingyao\Desktop\test.html")el=driver.find_element(By.ID,"1")time.sleep(2)el.click()# 弹窗进行处理alert=driver.switch_to.alertprint(alert.text)# 点击确认# alert.accept()time.sleep(2)driver.close()
二、下拉框操作
"""实现下拉框的操作from selenium.webdriver.support.select import Select"""from selenium.webdriver.support.select import Selectimport timefrom selenium.webdriver.common.by import Byfrom selenium import webdriverdriver=webdriver.Chrome()driver.get(r"C:\Users\xingyao\Desktop\test.html")# 定位下拉框el1=driver.find_element(By.ID,"banji")select=Select(el1)# 展示下拉框所有选项内容显示print("展示下拉框所有选项内容",select.options)time.sleep(2)# 实现选择下拉框选项选择 有三种方式 索引 value 选项内容select.select_by_index(1)time.sleep(2)select.select_by_value("22")time.sleep(2)select.select_by_visible_text("全栈VIP23期")time.sleep(2)driver.close()
三、键盘操作
"""键盘操作"""import timefrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.keys import Keysdriver=webdriver.Chrome()driver.get("https://www.baidu.com")driver.find_element(By.ID,"kw").send_keys("码尚教育")time.sleep(2)# ctrl+adriver.find_element(By.ID,"kw").send_keys(Keys.CONTROL,'a')# ctrl+cdriver.find_element(By.ID,"kw").send_keys(Keys.CONTROL,'c')# ctrl+xdriver.find_element(By.ID,"kw").send_keys(Keys.CONTROL,'x')driver.find_element(By.ID,"kw").clear()time.sleep(2)# ctrl+vdriver.find_element(By.ID,"kw").send_keys(Keys.CONTROL,'v')time.sleep(2)driver.close()
四、鼠标操作
"""鼠标操作ActionChains 动作链可以把多个鼠标操作按照顺序连贯的统一执行"""from selenium.webdriver import ActionChainsimport timefrom selenium.webdriver.common.by import Byfrom selenium import webdriverdriver=webdriver.Chrome()driver.get("https://www.baidu.com")driver.maximize_window()time.sleep(2)el_set=driver.find_element(By.ID,"s‐usersetting‐top")# ActionChains(driver).move_to_element(el_set).perform()# 第二种写法actions=ActionChains(driver)actions.move_to_element(el_set)actions.perform()time.sleep(1)el_gjselect=driver.find_element(By.LINK_TEXT,"高级搜索")el_gjselect.click()time.sleep(2)driver.close()"""ActionChains 常用的鼠标操作方法鼠标常用操作:滑块操作click_and_hold 点击鼠标左键不松开context_click 鼠标右击double_click 双击drag_and_drop 从一个元素拖到鼠标到另外一个元素drag_and_drop_by_offset 拖到某个坐标松开move_by_offset 鼠标从当前位置移动到某个坐标move_to_elementmove_to_element_with_offset 移动到距某个元素(左上角坐标)多少距离的位置pause 停留release 释放鼠标"""
作业:
基于selenium实现对项目 :后台登录-商品管理-检索商品名称
项目后台地址:
http://47.107.116.139/shopnc/admin/index.php?act=login&op=login
用户名:admin 密码:msadmin
