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

极速建站旅游攻略网站开发

极速建站,旅游攻略网站开发,镇海官方网站建设,鞍山58同城找工作 招聘背景#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.dnsts.com.cn/news/236625.html

相关文章:

  • 网站域名绑定ip个人网页模板html免费
  • 做自己照片视频网站三乡网站开发
  • 国外网站需要备案吗办个公司需要多少钱
  • 网站开发 书风险的网站怎么出现
  • 网站建设中服务器和空间区别wordpress密码保护
  • 网站建设费计入什么科目推广网站大全
  • 网站搜索优化怎么做权威网站
  • 旅游网站管理系统phpwordpress付费下载主题
  • 360网站备案查询全国工商企业查询平台
  • 网站开发的毕业设计西安借贷购物网站建设
  • 网站开发软件要求华为荣耀官网入口
  • 织梦多语言网站建设旅游网站财务分析
  • 企业网站设计方案书忆唐网不做网站做品牌
  • 优酷视频接到网站怎么做高端品牌网站建设网站开发注意什么
  • 圆方k20在线设计网站seo搜索引擎优化报价
  • 数据库支持的网站怎么做wordpress 中文 图片
  • 个人空间备案网站名称wordpress导航两行
  • 专业做生鲜的网站好网站内容建设要求 age06
  • 江宁区住房和城乡建设厅网站做页面设计的软件
  • 如何为自己的店铺做网站齐齐哈尔北京网站建设
  • 三角网站建设wordpress的中英文
  • 网站建设需要学代码吗小米路由器3 做网站
  • 免费建设网站抽取佣金开发网站
  • 设计公司的网站建设看WordPress用哪个页面
  • 纪念馆网站建设方案古诗网页设计素材
  • 做网站的电销话术php网站开发设计论文
  • php一键建站浙江网站建设价位
  • 18款禁用网站app破解版建站公司生存难
  • 做网站fjfzwl晨光科技 网站建设
  • wordpress 小说长沙网站优化培训