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

自贡北京网站建设大型购物网站排名

自贡北京网站建设,大型购物网站排名,网站怎样做有利于seo,武义网站建设Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中#xff0c;就像真正的用户在操作一样。支持的浏览器包括IE#xff08;7, 8, 9, 10, 11#xff09;#xff0c;Mozilla Firefox#xff0c;Safari#xff0c;Google Chrome#xff0c;Opera就像真正的用户在操作一样。支持的浏览器包括IE7, 8, 9, 10, 11Mozilla FirefoxSafariGoogle ChromeOperaEdge等。这个工具的主要功能包括测试与浏览器的兼容性——测试应用程序看是否能够很好得工作在不同浏览器和操作系统之上。 随着时代的发展在使用python做自动化时与之前差生了很大的变化这些变化都是一个老程序员所必须要踩坑的地方也是由于已经会了老版本在使用新版本的时候需要多次探索本文从当前最新版的Selenium出发以Chrome驱动为例总结了新版的使用方法免得到处去搜索、踩坑。 01、设置驱动 当前Selenium版本4.3.0请核对你的版本是否是4.0以上的版本 注意 请查看你的浏览器版本然后再去下载对应的驱动通常来说版本号时一致的如果没有你的版本号那就选择和你浏览器版本号最相近的版本。 1. selenium4推荐方法 由于传统的设置驱动方式过于繁琐因此GitHub大佬SergeyPirogov写了浏览器驱动管理器可以使设置驱动变得更加方便。 首先需要安装该管理器使用以下命令 pip install webdriver-manager 然后导入该包 from webdriver_manager.chrome import ChromeDriverManager 设置service通过ChromeDriverManager().install()来获取驱动从而省去了下载驱动和设置驱动的步骤 service ChromeService(executable_pathChromeDriverManager().install()) 然后驱动加载该service driver webdriver.Chrome(serviceservice) 此处贴出完整代码以供参考 from selenium import webdriver from selenium.webdriver.chrome.service import Service as ChromeService from webdriver_manager.chrome import ChromeDriverManager service ChromeService(executable_pathChromeDriverManager().install()) driver webdriver.Chrome(serviceservice) driver.quit() 2. 传统方法 这里使用传统方法来设置Selenium的驱动也就是导入webdriver然后设置可执行程序的路径。 首先在Selenium4中设置驱动位置不再是直接在webdriver.Chrome中直接设置而是引入了Service。 因此先导入Service的包 from selenium import webdriver from selenium.webdriver.chrome.service import Service as ChromeService 然后通过Service设置驱动CHROMEDRIVER_PATH替换为你的驱动位置 service ChromeService(executable_pathCHROMEDRIVER_PATH) 最后在webdriver.Chrome中调用这个service driver webdriver.Chrome(serviceservice) 给出完整代码予以参考 from selenium import webdriver from selenium.webdriver.chrome.service import Service as ChromeService options webdriver.ChromeOptions() options.add_experimental_option(excludeSwitches, [enable-automation]) options.add_experimental_option(useAutomationExtension, False) service ChromeService(executable_pathCHROMEDRIVER_PATH) driver webdriver.Chrome(serviceservice, optionsoptions) 02、查找元素 在selenium4中一系列的findElement方法如findElementByClassName、findElementById等都被整合成为了一个方法——findElement。并且通过By.method来选择你的查找元素方法例如下。 如果你想根据类名查找元素你可以使用以下方法 driver.findElement(By.className(className)); 如果你想通过css选择器来查找元素你可以使用以下方法 driver.findElement(By.cssSelector(.className)); 这里贴出与以往对应的所有查找元素方法更新前 driver.findElementByClassName(className);driver.findElementByCssSelector(.className); driver.findElementById(elementId); driver.findElementByLinkText(linkText); driver.findElementByName(elementName); driver.findElementByPartialLinkText(partialText); driver.findElementByTagName(elementTagName); driver.findElementByXPath(xPath); 更新后 driver.find_element(By.XPATH,XPATH) driver.find_element(By.CLASS_NAME,CLASS_NAME) driver.find_element(By.CSS_SELECTOR,CSS_SELECTOR) driver.find_element(By.ID,ID) driver.find_element(By.LINK_TEXT,LINK_TEXT) driver.find_element(By.PARTIAL_LINK_TEXT,PARTIAL_LINK_TEXT) driver.find_element(By.TAG_NAME,TAG_NAME) 如果你查找的是多个元素只需要将其中的find_element替换成find_elements即可。 等待元素出现 有时候某个元素不是直接出现的如果不做判断则会导致程序崩溃因此一般可以做异常处理这里还有等待元素出现的方法。 首先需要导入等待的包 from selenium.webdriver.support.ui import WebDriverWait 然后使用以下方法等待元素出现driver就是浏览器驱动timeout就是等待的时长until后是判断元素是否出现的 el WebDriverWait(driver, timeout3).until(lambda d: d.find_element_by_tag_name(p)) 03、动作API 动作API是网上资料比较少的因为之前的查找元素调用click等已经可以解决很多的问题了在翻看官方文档时发现selenium还支持动作API来模拟动作。 动作API分为四个部分分别是键盘、鼠标、笔、滚轮。这里先说明以下公共部分的。 暂停pause 光标移动滚轮滚动期间会有一些时间空隙这里可以使用暂停来实现这里是支持链式调用的这里贴出官方给出的例子 clickable driver.find_element(By.ID, clickable) ActionChains(driver)\.move_to_element(clickable)\.pause(1)\.click_and_hold()\.pause(1)\.send_keys(abc)\.perform() 释放所有动作 当前有动作执行时可以使用以下方法停止这些动作 ActionBuilder(driver).clear_actions()键盘 键盘代码表 如果你有兴趣可以看一下地址在这里可以看到完整的列表。 按下某键以输入shiftabc为例 ActionChains(driver)\.key_down(Keys.SHIFT)\.send_keys(abc)\.perform() 弹起某键以输入shifta和shiftb为例 ActionChains(driver)\.key_down(Keys.SHIFT)\.send_keys(a)\.key_up(Keys.SHIFT)\.send_keys(b)\.perform() 浏览器输入某串字符不指定元素 ActionChains(driver)\.send_keys(abc)\.perform() 指定元素输入字符串 text_input driver.find_element(By.ID, textInput)ActionChains(driver)\.send_keys_to_element(text_input, abc)\.perform() 复制和粘贴 cmd_ctrl Keys.COMMAND if sys.platform darwin else Keys.CONTROL ActionChains(driver)\.send_keys(Selenium!)\.send_keys(Keys.ARROW_LEFT)\.key_down(Keys.SHIFT)\.send_keys(Keys.ARROW_UP)\.key_up(Keys.SHIFT)\.key_down(cmd_ctrl)\.send_keys(xvv)\.key_up(cmd_ctrl)\.perform() 鼠标 鼠标点击保持该方法将鼠标移动到元素中心与按下鼠标左键相结合。 这有助于聚焦特定元素 clickable driver.find_element(By.ID, clickable)ActionChains(driver)\.click_and_hold(clickable)\.perform() 鼠标点击释放 clickable driver.find_element(By.ID, click)ActionChains(driver)\.click(clickable)\.perform() 鼠标定义的5种按键 0——鼠标左键1——鼠标中键2——鼠标右键3——X1后退键4——X2前进键 鼠标右击 clickable driver.find_element(By.ID, clickable)ActionChains(driver)\.context_click(clickable)\.perform() 按下鼠标3键 action ActionBuilder(driver)action.pointer_action.pointer_down(MouseButton.BACK)action.pointer_action.pointer_up(MouseButton.BACK)action.perform() 按下鼠标4键 action ActionBuilder(driver)action.pointer_action.pointer_down(MouseButton.FORWARD)action.pointer_action.pointer_up(MouseButton.FORWARD)action.perform() 鼠标双击 clickable driver.find_element(By.ID, clickable)ActionChains(driver)\.double_click(clickable)\.perform() 鼠标移动到元素上 hoverable driver.find_element(By.ID, hover)ActionChains(driver)\.move_to_element(hoverable)\.perform() 鼠标位移 就是通过像素点来进行位移操作 从元素左顶边进行位移 mouse_tracker driver.find_element(By.ID, mouse-tracker)ActionChains(driver)\.move_to_element_with_offset(mouse_tracker, 8, 11)\.perform() 从元素中心进行位移请期待 从当前窗口左上角位移 action ActionBuilder(driver)action.pointer_action.move_to_location(8, 12)action.perform() 从当前鼠标位置位移 ActionChains(driver)\.move_by_offset( 13, 15)\.perform() 拖拽元素 该方法首先单击并按住源元素移动到目标元素的位置然后释放鼠标。 draggable driver.find_element(By.ID, draggable)droppable driver.find_element(By.ID, droppable)ActionChains(driver)\.drag_and_drop(draggable, droppable)\.perform() 通过位移拖拽 draggable driver.find_element(By.ID, draggable)start draggable.locationfinish driver.find_element(By.ID, droppable).locationActionChains(driver)\.drag_and_drop_by_offset(draggable, finish[x] - start[x], finish[y] - start[y])\.perform() 笔部分浏览器生效 由于笔只在部分浏览器生效这里就不写了如果你感兴趣或者有需求可以去官方文档查看这里贴出官方文档地址。 滚轮只有谷歌内核浏览器生效 滚动到某元素位置 iframe driver.find_element(By.TAG_NAME, iframe)ActionChains(driver)\.scroll_to_element(iframe)\.perform() 定量滚动 footer driver.find_element(By.TAG_NAME, footer)delta_y footer.rect[y]ActionChains(driver)\.scroll_by_amount(0, delta_y)\.perform() 从一个元素滚动指定量 iframe driver.find_element(By.TAG_NAME, iframe)scroll_origin ScrollOrigin.from_element(iframe)ActionChains(driver)\.scroll_from_origin(scroll_origin, 0, 200)\.perform() 从一个元素滚动并指定位移 footer driver.find_element(By.TAG_NAME, footer)scroll_origin ScrollOrigin.from_element(footer, 0, -50)ActionChains(driver)\.scroll_from_origin(scroll_origin, 0, 200)\.perform() 从一个元素的原点位移 ActionChains(driver)\.scroll_from_origin(scroll_origin, 0, 200)\.perform() 总结 以上就是本文的所有内容总结了selenium4在使用过程中常见的一些坑以及官方所推荐使用的方式 最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你
http://www.w-s-a.com/news/175609/

相关文章:

  • 徐州网站建设熊掌号免费推广网站入口2020
  • 网站建设有前途长春高铁站
  • 做网站网课阿里云域名查询系统
  • saas建站平台有哪些简述网站建设基本流程答案
  • 个人怎么做网站网站浏览思路
  • 网站建设里的知识长沙网络营销公司
  • 网站建设与维护大作业pc网站转换成微网站
  • php网站开发经典教材东莞网站开发
  • 教育培训手机网站模板下载跨境电商培训哪家最好
  • 网站开发淄博网站被降权会发生什么影响吗
  • 网站开发常用的语言东城手机网站制作
  • 微小店网站建设平台手机优化加速有什么用
  • 沈阳酒店企业网站制作公司竞价网站怎么做seo
  • 中山企业网站多少钱学网站建设的好处
  • 做官网网站哪家公司好jianux wordpress
  • 插件素材网站新站seo优化快速上排名
  • 网站注销主体填写原因asp响应式h5网站源码下载
  • 电商类网站模板下载济南市建设网官网
  • 万户网络做网站如何采集器wordpress
  • 襄阳网站建设企业查看 wordpress 插件
  • 网站地址申请京东联盟怎么做网站
  • 三亚市城乡建设局网站网站口碑营销
  • 图书租借网站 开发企业网站搜索优化外
  • 新乡个人网站建设哪家好免费的图片做视频在线观看网站
  • 洛阳工程建设信息网站山西响应式网页建设哪里好
  • 企业网站建设市场的另一面wordpress分类插件
  • 网站建设名头公司展厅装修
  • 小型购物网站开发费用郑州企业网站模板建站
  • 个体商户建自己的网站做销售建设积分兑换官方网站
  • 网站建设与维护培训网页制作专业用语