Selenium基础

本文介绍了Selenium的基础知识,包括Action Chains类的常用方法,如点击、拖拽等模拟鼠标操作。还讨论了延迟等待的三种方式:硬性等待、隐式等待和显式等待,以及如何结合expected_conditions使用显式等待。此外,文章提到了Python中的断言方法,如assertEqual和assertTrue,并列举了可变与不可变数据类型的区别。最后,简要概述了map、filter和reduce函数的应用。
摘要由CSDN通过智能技术生成

资料:1、67道 Python自动化面试题_Python热爱者的博客-CSDN博客_python自动化面试题

100道Python面试题总结_Python热爱者的博客-CSDN博客_python面试题100道

1、Action Chains类

from selenium.webdriver.common.action_chains import ActionChains

首先需要实例化,然后调用其中的方法,完成相应的操作。

下面是一些常用的模拟鼠标的操作

  • click(on_element=None)
    鼠标单击
  • click_and_hold(on_element=None)
    鼠标单击并且按住不放
  • context_click(on_element=None)
    右击
  • double_click(on_element=None)
    双击
  • drag_and_drop(source, target)
    拖拽
  • drag_and_drop_by_offset(source, xoffset, yoffset)
    将目标拖动到指定的位置
  • key_down(value, element=None)
    按住某个键,使用这个方法可以方便的实现某些快捷键,比如下面按下Ctrl+c键

  • ActionsChains(browser).key_down(Keys.CONTROL).send_keys('c').perform()

         key_up(value, element=None)
        松开某个键,可以配合上面的方法实现按下Ctrl+c并且释放。

  • move_by_offset(xoffset, yoffset)
    指定鼠标移动到某一个位置,需要给出两个坐标位置
  • move_to_element(to_element)
    将鼠标移动到指定的某个元素的位置
  • move_to_element_with_offset(to_element, xoffset, yoffset)
    移动鼠标到某个元素位置的偏移位置
  • perform()
    将之前的一系列的ActionChains执行
  • release(on_element=None)
    释放按下的鼠标
  • send_keys(*keys_to_send)
    向某个元素位置输入值
  • send_keys_to_element(element, *keys_to_send)
    向指定的元素输入数据

  •  2

 2、延迟等待

延时等待分为三种,分别是:硬性等待、隐式等待、显示等待

1.强制等待:

import time

time.sleep(5)

不管浏览器是否加载完都需要等待5s

2.隐性等待:

driver.implicitly_wait(30)

等待时间到达后再执行下一步

隐性等待对整个driver 周期起作用

3.显性等待:

WebDriverWait需要配合until()和until_not()方法使用

如果提前检测到条件成立就结束等待。否则继续等待直到到超过设计的最长时间
等待可以和expected_conditions 结合起来使用。

3、EC类

1)expected_conditions.presence_of_element_located(locator)

判断一个元素存在于页面DOM树中,存在则返回元素本身,不存在则报错。

2)expected_conditions.element_to_be_clickable(locator)
判断某元素是否可访问并且可启用,比如能够点击,若可以则返回元素本身,否则返回False。locator为一个元祖(by, path)
3)expected_conditions.alert_is_present

判断alert是否存在,若存在则切换到alert,若不存在则返回false

4)expected_conditions.element_selection_state_to_be(element, is_selected)

判断某元素的选中状态是否与预期相同,相同则返回True,不同则返回False

5)expected_conditions.title_contains(title)

判断网页title是否包含特定文本(英文区分大小写),若包含则返回True,不包含返回False

等:详情可查找:Python + Selenium: expected_conditions介绍

Python + Selenium: expected_conditions介绍_kelanmomo的博客-CSDN博客

4、python中断言方法举例?

这里介绍几个常用断言的使用方法,可以一定程度上帮助大家对预期结果进行判断。

  • assertEqual
  • assertNotEqual
  • assertTrue
  • assertFalse
  • assertIsNone
  • assertIsNotNone

使用方法:

1、assertEqual(first,second,msg)其中first与second进行比较,如果相等则通过;
msg为失败时打印的信息,选填;
断言assertNotEqual反着用就可以了。

2、assertTrue(expr,msg)其中express输入相应表达式,如果表达式为真,则pass;
msg选填;

断言assertFalse如果表达式为假,则pass

3、assertIsNone和assertIsNotNone

使用方法:

  • assertIsNone:不存在,则pass
  • assertIsNotNone:存在,则pass

assertIsNone(obj,msg)检查某个元素是否存在

5、列出python中可变数据类型和不可变数据类型,并简述原理

不可变数据类型:

数值型、字符串型string和元组tuple

不允许变量的值发生变化,如果改变了变量的值,相当于是新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象(一个地址)

可变数据类型:

列表list和字典dict

允许变量的值发生变化,即如果对变量进行append、+=等这种操作后,只是改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化。

相同的值在内存中可能会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。

6、python中的map、filter、reduce函数

python中的map、filter、reduce函数 - 简书---看这个吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Selenium是一个用于自动化Web浏览器的工具,它提供了一组API可以与浏览器进行交互。Selenium基础封装是指将Selenium的常用功能进行封装,以便于在测试或爬虫等场景中更方便地使用。 Selenium基础封装通常包括以下几个方面: 1. 安装和配置:首先需要安装Selenium库,并配置相应的浏览器驱动,如ChromeDriver或GeckoDriver。 2. 创建WebDriver对象:使用Selenium的WebDriver类创建一个浏览器驱动对象,该对象可以控制浏览器的行为。 3. 页面导航:使用WebDriver对象的`get()`方法可以导航到指定的URL,也可以使用`back()`和`forward()`方法进行页面的后退和前进。 4. 元素定位:使用WebDriver对象的`find_element()`方法可以通过不同的定位方式(如ID、class、XPath等)定位页面上的元素。 5. 元素操作:通过定位到的元素,可以进行点击、输入文本、获取文本等操作,如`click()`、`send_keys()`、`text`属性等。 6. 等待机制:在页面加载或元素出现时,可以使用WebDriver提供的等待机制,如`implicitly_wait()`和`WebDriverWait`等。 7. 浏览器控制:可以通过WebDriver对象控制浏览器的一些行为,如最大化窗口、刷新页面、截图等。 8. 关闭浏览器:使用WebDriver对象的`quit()`方法可以关闭浏览器。 以上是Selenium基础封装的一些常见功能,通过封装这些功能,可以更方便地使用Selenium进行Web自动化测试或爬虫开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值