Selenium_博客已迁移selenium + python专题postman接口自動化

selenium 3.8.0 入门第二课 进阶的导航

2018-02-08  本文已影响54人  别摸我蒙哥

要进行各种导航第一件做的事情就是打开浏览器窗口。最简单的方式就是通过 get 方法打开。
在 driver.get('http://www.baidu.com')过程中,WebDriver 持续保持控制权在页面被完全加载前。
但是如果页面中有很多 AJAX 在同时加载,WebDriver 根本无法感知其是否加载完毕,这个时候就需要用到 waits 方法,具体在 selenium 之等待元素 详细讲述。

与页面的交互

一、获取元素

WebDriver 提供了许多方式来寻找元素,实现与页面的交互。
详细的说,共有以下几种方法:(都是以 find_element_by_ 开头)

find_element_by_* 改成 find_elements_by_*

上面的方法同时可以通过以下形式表现:
find_element 和 find_elements

具体使用方法

from selenium.webdriver.common.by import By

driver.find_element(By.XPATH, '//*[@id='login']/div/p/li[1]')

以下是 By 类对应的所有查找方式:
ID , XPATH, LINK_TEXT, PARTIAL_LINK_TEXT,NAME,TAG_NAME,CLASS_NAME,CSS_SELECTOR

两种方式对比,只是使用方式不同

第一种方式 第二种方式
*_by_id By.ID
*_by_xpath By.XPATH
*_by_link_text By.LINK_TEXT
... ...

此时会有同学问,这几个查找元素的方法有什么不同吗?什么场景下使用那种方式更方便?答案是有,而且不同方法区别还挺大,具体的方式在另一篇文章中详细讲述。

二、操作元素

获取元素后,怎么操作呢?

比如说我们想输入文本到文本框中,然后再模拟键盘上回车键:

element.clear()
element.send_keys(' and some')
element.send_keys(' and some', Keys.RETURN)

理论上,我们可以对任何一个元素调用 send_keys,这就允许 Selenium 模拟在浏览器中使用快捷键

三、填充表单

如果表单是单选框,我们可以通过 element.click() 方式直接点击,但是如果表单是多个选项,这个时候,再一个个遍历出来元素,模拟点击操作,就会显得很呆瓜。

WebDriver 提供了 Select 的方法来跟表单进行交互。

参考至:http://selenium-python.readthedocs.io/navigating.html

上一篇下一篇

猜你喜欢

热点阅读