您的当前位置:首页正文

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

来源:花图问答

与页面的交互

一、获取元素

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

  • find_element_by_id
  • find_element_by_name
  • find_element_by_xpath
  • find_element_by_link_text
  • find_element_by_partial_lind_text
  • find_element_by_tag_name
  • find_element_by_class_name
  • find_element_by_css_selector
    这些方法返回的都是第一个匹配到的元素,如果想返回所有匹配的结果

find_element_by_* 改成 find_elements_by_*

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

具体使用方法

from  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 的方法来跟表单进行交互。