1、定位语句不对
2、是否加等待
3、元素嵌套在iframe/frame元素标签中(切换frame) 多层嵌套frame/iframe
4、要定位的元素非当前窗口(切换句柄)
5、其他
一、弹窗处理
driver.switch_to.alert
import time
from selenium.webdriver.common.by import By
from selenium import webdriver
driver=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.alert
print(alert.text)
# 点击确认
# alert.accept()
time.sleep(2)
driver.close()
二、下拉框操作
"""
实现下拉框的操作
from selenium.webdriver.support.select import Select
"""
from selenium.webdriver.support.select import Select
import time
from selenium.webdriver.common.by import By
from selenium import webdriver
driver=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 time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
driver=webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.find_element(By.ID,"kw").send_keys("码尚教育")
time.sleep(2)
# ctrl+a
driver.find_element(By.ID,"kw").send_keys(Keys.CONTROL,'a')
# ctrl+c
driver.find_element(By.ID,"kw").send_keys(Keys.CONTROL,'c')
# ctrl+x
driver.find_element(By.ID,"kw").send_keys(Keys.CONTROL,'x')
driver.find_element(By.ID,"kw").clear()
time.sleep(2)
# ctrl+v
driver.find_element(By.ID,"kw").send_keys(Keys.CONTROL,'v')
time.sleep(2)
driver.close()
四、鼠标操作
"""
鼠标操作
ActionChains 动作链
可以把多个鼠标操作按照顺序连贯的统一执行
"""
from selenium.webdriver import ActionChains
import time
from selenium.webdriver.common.by import By
from selenium import webdriver
driver=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_element
move_to_element_with_offset 移动到距某个元素(左上角坐标)多少距离的位置
pause 停留
release 释放鼠标
"""
作业:
基于selenium实现对项目 :后台登录-商品管理-检索商品名称
项目后台地址:
http://47.107.116.139/shopnc/admin/index.php?act=login&op=login
用户名:admin 密码:msadmin