当前位置: 首页 > news >正文

手机网站建设新闻灰色广告投放平台

手机网站建设新闻,灰色广告投放平台,lamp网站开发黄金组...,网站技术实现方案1.Frame框架 使用frame框架可以达到一个页面包含多个窗口,可以理解为网页的嵌套,比如在A网页中设置一块区域用来显示B网页的内容。在不进行处理的前提下不能操作B网页的内容。 1.1切换到iframe元素 driver.switch_to_frame( frame_element ) # frame_e…

1.Frame框架

        使用frame框架可以达到一个页面包含多个窗口,可以理解为网页的嵌套,比如在A网页中设置一块区域用来显示B网页的内容。在不进行处理的前提下不能操作B网页的内容。

1.1切换到iframe元素

        driver.switch_to_frame( frame_element )  # frame_element是 iframe元素。

        当我们执行这条语句后,焦点就转换到了对应的 iframe框架内部,此时我们就能操作内部的元素了,但是不能操作外部的元素。

1.2 切换回主界面

        driver.switch_to_default_content()

2.多窗口操作

        我们在当前页面中点击一个链接打开另一个页面时,焦点不会自动转换到另一个页面,此时想操作另一个页面的元素时就会报 NoSuchElementException,要避免这个错误,需要我们手动切换到新打开的页面。

句柄:浏览器窗口的表示符,一个窗口对应一个唯一的句柄。

多窗口切换操作步骤:

        1.获取句柄        handles = driver.window_handles()

        2.切换句柄        driver.switch_to_window(handles[n])

句柄在列表中的索引顺序对应打开的顺序,handles[0]对应启动界面。

3.截图

        使用场景:当断言失败后,便于我们查看失败页面和失败原因

        driver.get_screenshot_as_file('图片存储地址')

4.处理验证码

处理验证码的方式:1.取消验证码        2.使用万能验证码        3.图像识别        4.cookie

我们主要使用cookie处理验证码,对应操作步骤:
1.手动登录一次抓包cookie        2.在脚本中添加cookie        3.刷新页面,登录成功

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
data = {'name':"cookie_key",'value':"cookie_value"} #这里对应的name和value需要提前抓包复制
driver.add_cookie(data)
all_cookies = driver.get_cookies() #获取所有cookie
sleep(1)
driver.refresh() #刷新后未登录状态变为已登录状态

5.PO模式

        PO即 Page Object,主要思想是将自动化涉及的页面或模块封装成一个类,相较于原始写法提高了复用性和可维护性

5.1 PO层次

5.1.1 Base层

        存放所有页面的公共方法,如查找元素,向文本框输入内容等。

from selenium.webdriver import Keys
from selenium.webdriver.support.wait import WebDriverWaitclass Base:def __init__(self, driver):self.driver = driverdef base_find_element(self, loc, timeout=10, frequency=0.5):    #loc[0]=By.CSS_SELECTOR, loc[1]='#id'return WebDriverWait(self.driver , timeout , frequency).until(lambda x: x.find_element(*loc))def base_input(self, loc , value):  #loc = ['By.ID', 'id']element = self.base_find_element(loc)element.clear() #输入前先清空element.send_keys(value)def base_click(self , loc):self.base_find_element(loc).click()def base_get_text(self,loc):return self.base_find_element(loc).text

5.1.2 Page层

        基于页面或模块单独封装当前要操作的对象,需要继承自Base层,调用基础的输入点击方法

"""
page层中封装当前页面需要进行的操作,比如现在为登录界面
那么封装的方法就包括输入用户名,输入密码,点击登录...
"""
from selenium.webdriver.common.by import By
from base.base import Base"""
准备的数据,每个数据都是一个元组,第一个元素是查找元素的方式,第二个是值
在调用Base层的查找元素方法时解包:lambda x: x.find_element(*loc)def base_find_element(self, loc, timeout=10, frequency=0.5):return WebDriverWait(self.driver , timeout , frequency).until(lambda x: x.find_element(*loc))
"""class PageLogin(Base):__loc_username = (By.CSS_SELECTOR, '#username')__loc_password = (By.CSS_SELECTOR, '#password')__loc_btn = (By.CSS_SELECTOR, '#btnLogin')def __page_login_input_username(self, value):self.base_input(self.__loc_username, value)def __page_login_input_password(self,value):self.base_input(self.__loc_password ,value)def __page_login_click_btn(self):self.base_click(self.__loc_btn)#整体登录业务,包括输入用户名密码,点击登录def page_login_transaction(self,username,password):self.__page_login_input_username(username)self.__page_login_input_password(password)self.__page_login_click_btn()

5.1.3 Script层

        脚本层+ unittest或者pytest

        

        

http://www.mmbaike.com/news/85983.html

相关文章:

  • 专业b2b电子商务平台哪里有整站优化
  • 佛山 网络推广怎么理解搜索引擎优化
  • 开源软件开发平台整站优化快速排名
  • apache多个网站推广下载app赚钱
  • 北京广告公司聚集地搜索引擎优化公司排行
  • 电子商务网站建设实训步骤电商培训班
  • 免费家装设计网合肥seo网站排名
  • 怎么让人搜索到自己做的网站免费制作个人网站
  • 广东网站开发推荐夸克搜索引擎
  • 软环境建设办公室网站百度网盘服务电话6988
  • 十堰网站制作公司电话个人网站设计成品
  • 营销网站建设都是专业技术人员吗精准引流的网络推广方法
  • 怎样上传图片到自己公司网站东莞百度推广排名
  • 点样用外网访问自己做的网站湖北网络推广
  • 上海网站建设哪家口碑好平台推广计划
  • 怎么在服务器里面建设网站黑龙江seo关键词优化工具
  • 桂林象鼻山门票多少钱seo关键词排名优化费用
  • 中国电信爱资源app宁波seo排名外包公司
  • asp的web音乐网站设计天猫seo搜索优化
  • 张店区网站建设特点有哪些 谢谢广告优化师
  • 售后网站用什么模板品牌网络营销推广方案策划
  • 长沙大型网站建设公司seo优化诊断
  • 重庆市建筑工程造价信息网seo外链在线工具
  • 广州网站建设快速排名杭州百度快照优化公司
  • 用ps做班级网站浏览器谷歌手机版下载
  • 视觉营销的网站设计软文广告500字
  • 朝阳专业做网站seo技术培训茂名
  • 美女做瑷网站海洋网络推广效果
  • 专门做旅游保险的网站360提交入口网址
  • 武汉网站多少建网站找谁