下拉框,文件上传,cookie操作,滚动条高度

  • 下拉框操作
from selenium.webdriver.support.select import Select

# 定位到下拉框元素
ele = driver.find_element_by_id("abc")
# # 根据下拉框文本选择
 Select(ele).select_by_visible_text("月薪三千")
# # 根据下标选择
# Select(ele).select_by_index(0)
# 根据 value 属性选择
Select(ele).select_by_value("p3")
  • 文件上传
import win32com.client

# # 定位到文件上传的 input 标签
# ele = driver.find_element_by_css_selector("input[type=\"file\"]")
#ele.send_keys("D:\\Users\lenovo\PycharmProjects\script\study\seleniumStu\day4\ele.png")

# 对于非 input 标签实现的上传功能,我们通过模拟键盘敲击的方式实现

# 触发文件上传的功能
driver.find_element_by_css_selector("figure.icon").click()
time.sleep(3)

# 模拟键盘敲击,会不管不顾的敲击,只要代码运行到这里,就敲
sh = win32com.client.Dispatch("WScript.shell")
sh.Sendkeys("D:\\Users\lenovo\PycharmProjects\script\study\seleniumStu\day4\ele.png\r\n")

# 注意:代码运行过程不要操作鼠标
# 输入法要保持英文输入的状态
  • cookie操作
# 获取所有的 cookie
cookieSli = driver.get_cookies()
pprint.pprint(cookieSli)
# # 根据name,获取某个cookie
# cookie = driver.get_cookie("beegosessionID")
# print(cookie)
  • cookie模拟登录
cookieSli = [{'domain': '127.0.0.1',
              'httpOnly': False,
              'name': 'Hm_lpvt_750463144f16fe69eb3ac11bea1c4436',
              'path': '/',
              'secure': False,
              'value': '1608555739'},
             {'domain': '127.0.0.1',
              # 'expiry': 1640091739,
              'httpOnly': False,
              'name': 'Hm_lvt_750463144f16fe69eb3ac11bea1c4436',
              'path': '/',
              'secure': False,
              'value': '1608555739'},
             {'domain': '127.0.0.1',
              # 'expiry': 1640091738,
              'httpOnly': True,
              'name': 'beegosessionID',
              'path': '/',
              'secure': False,
              'value': '06263987180ed7d51bc9f7014b31f03e'}]

# 先清除所有的cookie
driver.delete_all_cookies()
for cookie in cookieSli:
    # 添加 cookie
    driver.add_cookie(cookie)
driver.refresh()

"""
关于ui自动化登录的问题
    1、若权限足够,则申请服务端权限,读取验证码
    2、也可以在权限足够的情况下,去修改服务端验证码的值
    3、若权限不足,则请开发将测试环境的验证码校验取消(此刻输入任何内容都能通过
    4、测试环境设置一个万能验证码
    需要注意的是,第三四种方法,必须在上线后,修正
"""
  • 屏幕滚动条高度 可以通过 driver.execute_script() 执行js代码,达到目的
# 方法一  scrollBy(x,y)
 self.driver.execute_script('window.scrollBy(0,900)')

  x:必传,正数则向右滑动的像素值,负数则向左滑动的像素值

  y:必传,正数则向下滑动的像素值,负数则向上滑动的像素值
# 方法二  scrollTo(x,y)
 self.driver.execute_script('window.scrollTo(0,900)')

# 方法三 document.documentElement.scrollTop
 获取当前滚动条高度
 scrolTop = driver.execute_script("document.documentElement.scrollTop")  
 设置滚动条高度
 self.driver.execute_script("document.documentElement.scrollTop=1000")
posted @ 2021-03-28 00:00  太白之魔童降世  阅读(76)  评论(0编辑  收藏  举报