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

极速建站建设国际网站

极速建站,建设国际网站,李树全网页制作教程,扬州市市政建设处网站背景#xff1a; 做图表自动化项目需要做拖拽操作#xff0c;但是selenium提供的拖拽API无效#xff0c;因此借用pyautogui实现拖拽#xff0c;但是pyautogui的拖拽是基于Windows桌面坐标实现的#xff0c;另外浏览器中的坐标与windows桌面坐标并不是一比一对应的关系 做图表自动化项目需要做拖拽操作但是selenium提供的拖拽API无效因此借用pyautogui实现拖拽但是pyautogui的拖拽是基于Windows桌面坐标实现的另外浏览器中的坐标与windows桌面坐标并不是一比一对应的关系要把浏览器中的坐标转换成桌面坐标需要考虑的因素比较多如屏幕的分辨率、缩放比例、浏览器窗口位置、页面是否有滚动、工具栏高度等本文不考虑窗口内部滚动的情况假设下图黑框表示window桌面。 下面看下浏览器中selenium识别区的构成: 浏览器窗口位置 浏览器窗口位置为 var win_x window.screenX || window.screenLeft; var win_y window.screenY || window.screenTop; 由于我们在做自动化的时候窗口基本都会最大化因此不考虑窗口位置也可以如果窗口没有缩放移动位置上述两项值均为0移动了就不为0了如下 浏览器工具栏高度 浏览器工具栏高度为窗口外部高度-窗口内部高度,因为浏览器中的坐标是不包含浏览器的高度的。 var toolbarHeight window.outerHeight - window.innerHeight; 因此浏览器在进行坐标转换时需要考虑到以上因素还需要考虑到屏幕的分辨率缩放比例。 分辨率如下图 分辨率为1920*1200缩放比例为150%实际上与分辨率1280*800的视觉效果是一样的。如果考虑缩放的话则,浏览器中的坐标browserXbrowserY转换成桌面坐标为 // 计算浏览器中坐标的桌面坐标 var desktopX (win_x browserX) * (screenWidth/window.innerWidth) ; var desktopY (win_ytoolbarHeight/desktopScale browserY) * (screenHeight/ window.innerHeight ); console.log(桌面坐标 (x, y):, desktopX, desktopY); 这里工具栏高度需要做一个转换toolbarHeight/desktopScaledesktopScale表示屏幕缩放比例。 pyautogui实现拖拽如下 # 移动到拖拽元素中心坐标 pyautogui.moveTo(src_center_loc_x, src_center_loc_y, duration1, tweenpyautogui.linear) # 落到目标位置 pyautogui.dragTo(to_center_loc_x, to_center_loc_y, duration2, buttonleft) 完整代码 def browser_2_windows_coordinates_v2(self, browserX,browserY, screenWidth1920, screenHeight1200, desktopScale1.5):# location self.get_element_location(element)# x, y location[left_up][0], location[left_up][1]script function getDesktopCoordinates(browserX, browserY,screenWidth,screenHeight,desktopScale) {{// 浏览器中的坐标(x, y)var browserX browserX;var browserY browserY;// 屏幕分辨率var screenWidth screenWidth;var screenHeight screenHeight;// 桌面缩放比例var desktopScale desktopScale;//- 浏览器窗口左上角的桌面坐标为win_x, win_y。var win_x window.screenX || window.screenLeft;var win_y window.screenY || window.screenTop;//计算工具栏高度var toolbarHeight window.outerHeight - window.innerHeight;// 计算桌面坐标var desktopX (win_x browserX) * (screenWidth/window.innerWidth) ;var desktopY (win_ytoolbarHeight/desktopScale browserY) * (screenHeight/ window.innerHeight );console.log(桌面坐标 (x, y):, desktopX, desktopY);// 创建包含坐标的对象var desktopCoordinates {{desktopX: desktopX,desktopY: desktopY}};return desktopCoordinates;}}var coordinates getDesktopCoordinates({browserX}, {browserY},{screenWidth},{screenHeight},{desktopScale});return coordinates;.format(browserXbrowserX, browserYbrowserY, screenWidthscreenWidth, screenHeightscreenHeight,desktopScaledesktopScale)logging.info(script)desktopCoordinates self.driver.execute_script(script)logging.info(desktopCoordinates)return desktopCoordinates
http://www.hkea.cn/news/14257477/

相关文章:

  • 网站工作室网站metro风格网站模板
  • 流媒体 网站开发灵台教育局网站师资队伍建设
  • 如何建设网站网站WordPress小程序论坛
  • 德阳网站优化郑州网站建设seo优化
  • asp网站js悬浮窗怎么做网页游戏服务端
  • 彩妆网站建设报告十堰seo按天计费
  • ppt接单兼职网站wordpress谷歌广告位插件
  • 旅游网站名称设计广州专业网站建设报价
  • 免费建站工具郑州餐饮网站建设哪家好
  • 如何修改wordpress站红色扁平化网站
  • 樟木头东莞网站建设建网站免费吗
  • 特殊教育学校网站建设方案多个招聘网站格式不一致如何做招聘记录
  • 陕西中洋建设有限公司网站wordpress设置注册页面
  • 成都网站建设冠辰网站建设及网络营销
  • 网站 集约化建设管理举措湖南网站优化推广
  • 网站开发 书深圳app开发合作
  • 韩国网站加速器买东西的网站都有哪些
  • 微商城网站建设行情wap视频网站建设难吗
  • 江苏南京建设工程信息网站网页制作教程视频 网盘
  • 湘潭网站建设多少钱公众号的文章下载 wordpress
  • 建网站流程 知乎建设刷单网站
  • 手机网站js触屏滑动图片特效c 网站开发流程
  • 简单建网站简单的html模板
  • 家居品牌网站设计论文苏州市住房和建设局网站
  • 网站建设方案策划书微信官方网站首页
  • 如何规划企业网站四川网站设计
  • 黄石城乡建设网站项目经理岗位职责
  • 网站改版后的推广办法工作室官网模板
  • 教育行业展示网站模板网站 盈利模式
  • 金融行业网站开发和县网站设计