selenium知识点

八大定位方式

find_element_by_id:通过id查找

find_element_by_name:通过name查找

find_element_by_tag_name:通过tag查找

find_element_by_class_name:通过classname查找

find_element_by_link_text:通过超链接的文本查找(完全匹配)(类似xpath的text())

find_element_by_partial_link_text:同上,但是是部分查找

find_element_by_css_selector:通过css选择器

find_element_by_xpath:通过xpath

 

XPATH知识点总结:

/单斜杠绝对定位

//双斜杠相对定位

使用语法:

//标签[@属性=”值”]

特殊属性:

标签的文本属性值:text()

模糊查找:contains(@属性,"值")

 

轴运算:

ancestor:祖先节点,包括父节点,一直到根节点html

parent:父节点

preceding:当前元素节点标签之前的所有结点,一直到根节点html

preceding-sibling:当前元素节点标签之前的所有兄弟节点

following:当前元素节点标签之后的所有节点,一直到结束的根节点html
following-sibling:当前元素节点标签之后的所有兄弟节点

 

使用语法:(轴定位必须用单斜杠)

能定位到的已知的元素/轴名称::标签名称[@属性=”值”]

 

 

3个等待方式:

 

  1. time.sleep(固定时间)
    1. implicity_wait :隐性等待。等待元素被找到,等待命令执行完成
    2. WebDriverWait:显性等待,等待类,需要import,还需要引入条件库
  2. WebDriverWait(driver, 20, 1).until()  (20s等待超时,每隔1s检索一次)

括号内参数:

  1. driver:webdriver的实例
  2. 20:最多20s的等待时间
  3. 1:每隔1s间隔查询一次(内部机制查询)

until() :表示条件成立

until_not(): 表示条件不成立

隐式等待:设置一个超时时间,在这个时间内会去不断寻找元素(全局),超时找不到时就会报错;

显示等待:设置一个超时时间和一个元素查找条件,在这个时间内不断寻找这个元素,超时找不到时就会报错;

 

三大切换

  1. 切换窗口

driver.switch_to.window(handle)   切换窗口

Wins = driver.window_handles 获取当前所有句柄

driver.current_windows_handle 获取当前窗口的句柄

driver.switch_to.window(wins[-1])   切换到最后一个窗口

 

  1. 切换iframe

driver.switch_to.iframe()

3种方式

driver.switch_to.frame('name')   name属性
driver.switch_to.frame(1) 下标
driver.switch_to.frame(driver.find_elements_by_name("name"))  webElement对象

 

  1. alert 切换

弹出框分为3种

  1. alert   (弹框只有一个确定按钮)
  2. prompt (确定取消按钮)
  3. confirm (确定取消按钮还有一个输入框)

如何关闭他

al = driver.switch_to.alert   获取alert的实例

al.text alert显示的文本

al.accept() 相当于点击确定按钮

al.dismiss() 相当与取消按钮

al.send_keys(“string”) 在输入框内输入文本内容

鼠标操作

from selenium.webdriver.common.action_chains import ActionChains  引入类

ActionChains下面的函数

click() 点击

double_click() 双击

move_to_element() 悬浮鼠标放到元素的正中间

context_click() 右键

drag_and_drop() 一个元素拖拽到另外一个元素

drag_and_drop_by_offset()   坐标偏移的拖动

key_down() 按下按键,只处理控制键 control  shift  

例如:ctrl+c

ActionChains(driver).key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()

 

pause(时间:秒) 暂停

 

先实例化ActionChains  

  1. 要操作的动作放在链表当中,找到元素,调用鼠标行为
  2. 调用perform()

 

下拉列表 select/option

from selenium.webdriver.support.select import Select

loc = (By.XPATH, 'xxxxx')

WebDriverWait(driver, 20).until(EC.visibility_of_element_located(loc))

select_ele = driver.find_element(*loc)

s = Select(select_ele)

s.select_by_index()   # 下标

s.select_by_value()   # option的value值

s.select_by_visible_text()   # 可见选项文本

 

 

键盘操作

from selenium.webdriver.common.keys import Keys  引入,常量

driver.find_element('').send_keys('ss', Keys.ENTER)

 

 

总结:

1) iframe切换:

  1)触发 iframe/alert

  2) 识别:元素是否在iframe当中???

  3)切换到iframe: 下标/name属性/webElement对象

     driver.switch_to.frame()

 

2)alert切换:--Alert类

   1)触发 iframe/alert

   2)切换  driver.switch_to.alert

   3) 关闭

 

3)鼠标操作  ActionChains类

   1)调用行为

   2)perform()执行

 

4)下拉列表  Select类

   非select: 弹出下拉框,等待下拉框中的元素可见,然后操作

   Select: 实例化类,根据下标/文本/value属性选值。

 

  1. 键盘操作   Keys类

 

Js操作

Selenium执行js

Driver.execute_script(script, *args)

 

 

滚动操作(会自动)

Element.scrollIntoView(); #js语句,元素滚动到页面最上方

Element.scrollIntoView(false); #js语句,元素滚动到页面最下方

window.scrollTo(0,document.boby.scrollHeight) #js语句,移动到页面底部

window.scrollTo(document.boby.scrollHeight,0) #js语句,移动到页面顶部

 

步骤

1)查找元素

loc = (By.PARTIAL_LINK_TEXT, '_百度翻译')

ele = driver.find_element(*loc)

  1. 运行命令

driver.execute_script("arguments[0].scrollIntoView();", ele)

备注:

arguments可以传多个元素,例如

driver.execute_script("arguments[0].scrollIntoView();arguments[1].scrollIntoView();", ele1,ele2)

 

 

 

1. Selenium是什么? Selenium是一个自动化测试工具,用于测试Web应用程序的功能和性能。 2. Selenium的组件有哪些? Selenium组件包括Selenium IDE、Selenium WebDriver、Selenium Grid。 3. Selenium IDE是什么? Selenium IDE是一款浏览器插件,可以录制和回放用户在浏览器中的操作。 4. Selenium WebDriver是什么? Selenium WebDriver是一个用于自动化测试的工具,可以通过编写代码来模拟用户在浏览器中的操作。 5. 如何在Java中使用Selenium WebDriver? 在Java中使用Selenium WebDriver需要先下载Selenium的Java库,并在代码中引用该库。然后可以使用WebDriver来创建一个浏览器实例,然后使用该实例来执行测试。 6. Selenium Grid是什么? Selenium Grid是一种用于分布式测试的工具,可以将测试任务分配给多台计算机来并行执行测试。 7. Selenium支持哪些浏览器? Selenium支持Chrome、Firefox、Internet Explorer、Safari等主流浏览器。 8. Selenium如何定位元素? Selenium可以通过元素的ID、名称、类名、标签名、链接文本、CSS选择器和XPath等方式来定位元素。 9. 如何使用Selenium进行数据驱动测试? 可以使用Selenium的TestNG插件来进行数据驱动测试。在TestNG中,可以使用@DataProvider注解来提供测试数据,然后在测试方法中使用该数据来执行测试。 10. 如何使用Selenium进行并发测试? 可以使用Selenium Grid来进行并发测试。在Grid中,可以将测试任务分配给多台计算机来并行执行测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值