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

重庆网站建设cq600网页制作的模板代码

重庆网站建设cq600,网页制作的模板代码,百度蜘蛛对视频网站的抓取,wordpress 考试系统1.鼠标定位操作鼠标悬停#xff0c;即当光标与其名称表示的元素重叠时触发的事件#xff0c;在 Selenium 中将键盘鼠标操作封装在 Action Chains 类中。Action Chains 类的主要应用场景为单击鼠标、双击鼠标、鼠标拖曳等。部分常用的方法使用分类如下#xff1a;• click(on…1.鼠标定位操作鼠标悬停即当光标与其名称表示的元素重叠时触发的事件在 Selenium 中将键盘鼠标操作封装在 Action Chains 类中。Action Chains 类的主要应用场景为单击鼠标、双击鼠标、鼠标拖曳等。部分常用的方法使用分类如下• click(on_elementNone)模拟鼠标单击操作。• click_and_hold(on_elementNone)模拟鼠标单击并且按住不放。• double_click(on_elementNone)模拟鼠标双击。• context_click(on_elementNone)模拟鼠标右击操作。• drag_and_drop(source,target)模拟鼠标拖曳。• drag_and_drop(source,xoffset,yoffset)模拟将目标拖曳到目标位置。• key_down(value,elementNone)模拟按住某个键实现快捷键操作。• key_up(value,elementNone)模拟松开某个键一般和 key_down 操作一起使用。• move_to_element(to_element)模拟将鼠标移到指定的某个页面元素。• move_to_element_with_offset(to_element,xoffset,yoffset)移动鼠标至指定的坐标。• perform()将之前一系列的 ActionChains 执行。• release(on_elementNone)释放按下的鼠标。接下来列举鼠标右击操作和鼠标双击操作两个实例。1鼠标右击操作实现右击/双击百度首页“新闻”超链接。代码如下# _*_ coding:utf-8 _*_name:zhangxingzai date:2023/2/16 form:《Selenium 3Python 3自动化测试项目实战》 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver import ActionChainsdriver webdriver.Firefox() # 打开百度 driver.get(https://www.baidu.com/) # 定位超链接‘新闻’ element driver.find_element(By.LINK_TEXT, 新闻) # 实现在新闻超链接上右击 ActionChains(driver).context_click(element).perform() # 实现用鼠标实现双击‘新闻’ ActionChains(driver).double_click(element).perform()2以百度首页设置为例使用“move_to_element”的方法鼠标即可悬停于元素设置from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver import ActionChainsdriver webdriver.Firefox() # 打开百度 driver.get(https://www.baidu.com/) # 通过id定位超链接‘设置’ setting driver.find_element(By.ID, s-usersetting-top) # 使用方法 move_to_element 模拟将鼠标悬停在超链接“设置”处 ActionChains(driver).move_to_element(setting).perform() # 定位超链接‘高级设置’并实现单击操作 driver.find_element(By.CLASS_NAME, set).click()实现效果如下2.Select 操作Web 页面中经常会遇到下拉框选项Select 模块提供了对标准 Select 下拉框的多种操作方法。打开百度单击“设置→高级设置”会出现一个 Select 下拉框如下图所示Select 元素的 HTML 代码如下图所示。接下来介绍 3 种选择 Select 元素的值的方法。Select 类用于定位select标签。select_by_value()通过 value 值定位下拉选项。select_by_visible_text()通过 text 值定位下拉选项。select_by_index()根据下拉选项的索引进行选择。第一个选项为 0第二个选项为 1。通过 WebDriver 代码操作下拉框代码如下from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver import ActionChains from selenium.webdriver.support.select import Selectdriver webdriver.Firefox() # 打开百度 driver.get(https://www.baidu.com/) # 定位超链接‘设置’ setting driver.find_element(By.ID, s-usersetting-top) # 使用方法 move_to_element 模拟将鼠标悬停在超链接“设置”处 ActionChains(driver).move_to_element(setting).perform() # 通过xpath定位超链接‘高级’并实现单击操作 driver.find_element(By.XPATH, //div/a[target_blank]/span).click() # 通过class定位选择‘全部时间’ search_time driver.find_element(By.CLASS_NAME, c-select-selection) # 通过 value 值定位下拉选项 Select(search_time).select_by_value(stf1676475129.442,1676561529.442|stftype1) # 通过 text 值定位下拉选项 Select(search_time).select_by_visible_text(最近一周)3.键盘操作前面介绍过send_keys()方法可以用来模拟键盘输入我们还可以用它来输入键盘上的按键甚至是组合键如 Ctrla、Ctrlc 等。经过总结以下为自动化测试中常用的键盘事件。• Keys.BACK_SPACE删除键。• Keys.SPACE空格键。• Keys.TABTab 键。• Keys.ESCAPE回退键。• Keys.ENTER回车键。• Keys.CONTROL,”a”组合键 Ctrl A。• Keys.CONTROL,”x”组合键 Ctrl X。• Keys.CONTROL,”v”组合键 Ctrl V。• Keys.CONTROL,”c”组合键 Ctrl C。• Keys.F1F1 键。• Keys.F12F12 键。用法举例如下方代码展示from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from time import sleepdriver webdriver.Firefox() # 打开百度 driver.get(https://www.baidu.com/) # 在输入框输入内容 driver.find_element(By.ID, kw).send_keys(selenium) # 删除多输入的一个 m driver.find_element(By.ID, kw).send_keys(Keys.BACK_SPACE) sleep(1) # 输入空格键“教程” driver.find_element(By.ID, kw).send_keys(Keys.SPACE) driver.find_element(By.ID, kw).send_keys(教程) sleep(1) # 输入组合键 Ctrla全选输入框内容 driver.find_element(By.ID, kw).send_keys(Keys.CONTROL, a) sleep(1) # 输入组合键 Ctrlx剪切输入框内容 driver.find_element(By.ID, kw).send_keys(Keys.CONTROL, x) sleep(1) # 输入组合键 Ctrlv粘贴内容到输入框 driver.find_element(By.ID, kw).send_keys(Keys.CONTROL, v) sleep(1) # 用回车键代替单击操作 driver.find_element(By.ID, su).send_keys(Keys.ENTER)4.利用 JavaScript 操作页面元素WebDiver 对部分浏览器上控件并不是直接支持的如浏览器右侧滚动条、副文本等而是通常借助 JavaScript 间接操作。WebDriver 提供了 execute_script()和 execute_async_scrip()两种方法来执行 JavaScript 代码其区别如下1execute_script 为同步执行且执行时间较短。WebDriver 会等待同步执行的结果然后执行后续代码。2execute_async_script 为异步执行且执行时间较长。WebDriver 不会等待异步执行代码的结果而是直接执行后续的代码。用于调整浏览器滚动条位置的 JavaScript 代码如下。!-- window.scrollTo(左边距,上边距); -- window.scrollTo(0,450);window.scrollTo()方法用于设置浏览器窗口滚动条的水平位置和垂直位置。第一个参数表示水平的左边距第二个参数表示垂直的上边距代码如下。from selenium import webdriver from selenium.webdriver.common.by import By from time import sleepdriver webdriver.Firefox() # 打开百度 driver.get(https://www.baidu.com/) # 设置浏览器窗口大小 driver.set_window_size(800, 700) driver.find_element(By.ID, kw).send_keys(selenium) driver.find_element(By.ID, su).click() sleep(3) # 通过 JavaScript 设置浏览器窗口的滚动条位置 js window.scrollTo(100,300) driver.execute_script(js)执行结果如下图所示5.获得验证信息在进行 Web 自动化测试中用得最多的几种验证信息是 title、current_url 和 text。title用于获取当前页面的标题。current_url用于获取当前页面的 URL。text用于获取当前页面的文本信息。下面仍以百度搜索为例对比搜索前后的信息。from selenium import webdriver from selenium.webdriver.common.by import By from time import sleepdriver webdriver.Firefox() driver.get(https://www.baidu.com/)print(Before search) # 打印当前页面 title title driver.title print(title: title)# 打印当前页面 URL now_url driver.current_url print(URL: now_url)driver.find_element(By.ID, kw).send_keys(selenium) driver.find_element(By.ID, su).click() sleep(3)print(After search) # 再次打印当前页面 title title driver.title print(title: title) # 再次打印当前页面 URL now_url driver.current_url print(URL: now_url)# 获取搜索结果条数 num driver.find_element(By.XPATH, //span[classhint_PIwZX c_font_2AD7M]).text print(result:num)运行结果如下通过上面的打印信息可以看出搜索前后的差异这些差异信息可以拿来作为自动化测试的断言点。6.设置元素等待WebDriver 提供了两种类型的元素等待显式等待和隐式等待。1显示等待显式等待是 WebDriver 等待某个条件成立则继续执行否则在达到最大时长时抛出超时异常TimeoutException。from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as ECdriver webdriver.Firefox() driver.get(https://www.baidu.com)element WebDriverWait(driver, 5, 0.5).until(EC.visibility_of_element_located((By.ID, kw))) element.send_keys(selenium)WebDriverWait 类是 WebDriver 提供的等待方法。在设置时间内默认每隔一段时间检测一次当前页面元素是否存在如果超过设置时间仍检测不到则抛出异常。具体格式如下。driver浏览器驱动。timeout最长超时时间默认以秒为单位。poll_frequency检测的间隔步长时间默认为 0.5s。ignored_exceptions超时后的异常信息默认情况下抛出 NoSuchElementException异常。WebDriverWait()一般与 until()或 until_not()方法配合使用下面是 until()和 until_not()方法的说明until(method, message″)调用该方法提供的驱动程序作为一个参数直到返回值为 True。until_not(method, message″)调用该方法提供的驱动程序作为一个参数直到返回值为 False。在本例中通过 as 关键字将 expected_conditions 重命名为 EC并调用 presence_of_element_located()方法判断元素是否存在。expected_conditions 类提供的预期条件判断方法如下图所示。除 expected_conditions 类提供的丰富的预期条件判断方法外还可以利用is_displayed()方法自己实现元素显示等待。from time import sleep, ctime from selenium import webdriver from selenium.webdriver.common.by import Bydriver webdriver.Firefox() driver.get(https://www.baidu.com) print(ctime())for i in range(10):try:el driver.find_element(By.ID, kw22)if el.is_displayed():breakexcept:passsleep(1) else:print(time out) print(ctime())相对来说这种方式更容易理解。首先 for 循环 10 次然后通过 is_displayed()方法循环判断元素是否可见。如果为 True则说明元素可见执行 break 跳出循环否则执行 sleep()休眠 1s 后继续循环判断。10 次循环结束后如果没有执行 break则执行 for 循环对应的else 语句打印“time out”信息。这里故意将 id 定位设置为“kw22”定位失败执行结果如下2隐式等待WebDriver 提供的 implicitly_wait()方法可用来实现隐式等待用法相对来说要简单得多。from time import ctime from selenium import webdriver from selenium.webdriver.common.by import By from selenium.common.exceptions import NoSuchElementExceptiondriver webdriver.Firefox() # 设置隐式等待为 10s driver.implicitly_wait(10) driver.get(https://www.baidu.com) try:print(ctime())driver.find_element(By.ID, kw22).send_keys(selenium) except NoSuchElementException as e:print(e) finally:print(ctime())implicitly_wait()的参数是时间单位为秒本例中设置的等待时间为 10s。首先这10s 并非一个固定的等待时间它并不影响脚本的执行速度。其次它会等待页面上的所有元素。当脚本执行到某个元素定位时如果元素存在则继续执行如果定位不到元素则它将以轮询的方式不断地判断元素是否存在。假设在第 6s 定位到了元素则继续执行若直到超出设置时间10s还没有定位到元素则抛出异常。这里同样故意将 id 定位设置为“kw22”定位失败执行结果如下7.警告框处理在 WebDriver 中处理 JavaScript 生成的 alert、confirm 和 prompt 十分简单具体做法是首先使用 switch_to.alert()方法定位然后使用 text、accept、dismiss、send_keys 等进行操作。text返回 alert、confirm、prompt 中的文字信息。accept()接受现有警告框。dismiss()解散现有警告框。send_keys()在警告框中输入文本如果可以输入的话。这里以百度搜索设置为例打开百度搜索设置设置完成后单击“保存设置”按钮可以使用 switch_to.alert()方法为百度搜索设置弹窗如下图所示代码如下from time import sleep from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver import ActionChainsdriver webdriver.Firefox() driver.get(https://www.baidu.com/) # 定位超链接‘设置’ setting driver.find_element(By.ID, s-usersetting-top) # 使用方法 move_to_element 模拟将鼠标悬停在超链接“设置”处 ActionChains(driver).move_to_element(setting).perform() # 通过class定位超链接‘搜索设置’并实现单击操作 driver.find_element(By.CLASS_NAME, set).click() # 通过xpath获取保存设置 driver.find_element(By.XPATH, //a[classprefpanelgo setting-btn c-btn c-btn-primary]).click() sleep(3)# 获取警告框 alert driver.switch_to.alert # 获取警告框提示信息 alert_text alert.text print(alert_text) # 接取警告框 alert.accept()8.获取Cookie有时我们需要验证浏览器中的 Cookie 是否正确因为基于真实的 Cookie 是无法通过白盒测试和集成测试的。WebDriver 提供了操作 Cookie 的相关方法可以读取、添加和删除 Cookie。WebDriver 操作 Cookie 的方法如下get_cookies()获得所有 Cookie。get_cookie(name)返回字典中 key 为“name”的 Cookie。add_cookie(cookie_dict)添加 Cookie。delete_cookie(name,optionsString)删除名为 OpenString 的 Cookie。delete_all_cookies()删除所有 Cookie。下面通过 get_cookies()获取当前浏览器的所有 Cookie。代码如下from selenium import webdriverdriver webdriver.Firefox() driver.get(https://www.baidu.com/) # 获得所有 Cookie 信息并打印 cookie driver.get_cookies() print(cookie)执行结果如下从执行结果可以看出Cookie 中的数据是以字典形式存放的。知道了 Cookie 中数据的存放形式后即可按照这种形式向浏览器中添加 Cookie。from selenium import webdriverdriver webdriver.Firefox() driver.get(https://www.baidu.com/)# 添加 Cookie 信息 driver.add_cookie({name: foo, value: bar}) # 遍历指定的 Cookies for cookie in driver.get_cookies():print(%s - %s % (cookie[name], cookie[value]))执行结果如下从执行结果可以看出最后一条 Cookie 是在脚本执行过程中通过 add_cookie()方法添加的。通过遍历得到所有的 Cookie从而找到字典中 key 为“name”和“value”的 Cookie值。delete_cookie() 和 delete_all_cookies() 方法的使用也很简单前者通过 name 删除一个指定的 Cookie后者直接删除浏览器中的所有 Cookies。9.窗口截图自动化测试用例是由程序执行的因此有时候打印的错误信息不够直观。如果在脚本执行出错时能够对当前窗口进行截图并保存那么通过截图就可以非常直观地看到脚本出错的原因。WebDriver 提供了截图函数 save_screenshot ()可用来截取当前窗口。from time import sleep from selenium import webdriverdriver webdriver.Firefox() driver.get(https://www.baidu.com/) sleep(3)# 截取当前窗口指定截图图片的保存位置 driver.save_screenshot(D:/baidu_img.png)WebDriver 建议使用 png 作为图片的后缀名。脚本运行完成后会在D盘根目录下生成 baidu_img.png 图片这样我们就学习完大部分Selenium 的特殊元素操作方法了读者可以掌握 Selenium 的常用方法包括熟悉每种方法使用的场景或者前提条件。
http://www.hkea.cn/news/14379111/

相关文章:

  • 重庆网站开发工资昆明c2c网站建设
  • 长沙做网站设计的公司团购鲜花的网站建设
  • 网站流量地址评价是什么意思wix做的网站在国内访问不了
  • 国外调色教程网站免费建网站空间
  • 网站制作收费手机网站欣赏
  • 梧州网站推广做网站公司是干什么的
  • 网站打开显示域名错误吉林省科瑞建设项目管理有限公司网站
  • 学会网站建设青岛免费模板建站
  • 企业网站是什么wordpress主题打开慢
  • 什么网站做旅行计划个人引擎网站什么做
  • 网站建设与维护好学吗投票网站怎么做
  • 代做网站的公司wordpress音乐自动播放
  • 网站建设活动计划网站页脚的信息都有什么
  • 网站做app安全吗好看的学校网站模板
  • 门户网站案例辽宁建设工程信息网登录不上去
  • 网站建设及推广图片网站开发使用哪种语言
  • 安康做网站公司湖南株洲建设局网站
  • app介绍类网站模板潍城区建设局网站
  • vs做网站教程深圳网站建设一尘互联
  • 360网站安全检测eclipse怎么做网页
  • 做网站的技术wordpress 配置要求
  • 个人网站这么做南阳那里有做网站的
  • 静态网站策划书ios开发者账号有什么用
  • 班级网站页面设计通栏网站
  • 门户网站建设探究管理咨询项目
  • 上海智能网站建设平台专业装修超市的装修公司
  • 个人网站开发与实现开题报告扬中论坛最新
  • 教你做美食的网站网络营销方式文献
  • 青岛做网站和小程序的公司metasploit wordpress
  • 做网站建设哪家公司好北京国家建设部网站首页