Selenium使用——Webelement(二)

上篇博客了解到用find...方法来查找指定元素,找到的元素是一个Webelement对象。这个对象也有着许多非常实用的方法。下面一一来介绍下常用到的。

方法

  • clear()清空

如果当前元素中有文本,则清空文本

  • click()单击

点击当前元素

  • get_attribute(name)获取属性

获取元素的attribute/property,优先返回完全匹配属性名的值,如果不存在,则返回属性名中包含name的值。

  • send_keys(value) 模拟键入元素

给当前元素模拟输入

  • submit()提交表单

提交表单

  • find_elements_by_*等查找方法

查找到的元素还可以再次往里查找,既可以嵌套使用。

属性

  • text

获取当前元素的文本内容

  • tag_name

获取当前元素的标签名

  • size

获取当前元素的大小

  • rect

获取一个包含当前元素大小和位置的字典

  • parent

获取当前元素的父节点

  • location

当前元素的位置

Keys

我们经常需要模拟键盘的输入,当输入普通的值时,在send_keys()方法中传入要输入的字符串就好了。但是我们有时候会用到一些特殊的按键,这时候就需要用到我们的Keys。

  • 单键例子

from selenium.webdriver.common.keys import Keys

elem.send_keys(Keys.RETURN)
  • 组合按键

而有时候我们又会需要使用到多个按键的组合按键,比如ctrl+a,那么在参数中依次传入即可。

from selenium.webdriver.common.keys import Keys

elem.send_keys(Keys.CONTROL, 'a')

 Keys属性

这个Keys类有很多属性,每个属性对应一个按键。所有的属性如下所示:

ADD = u'\ue025'
ALT = u'\ue00a'
ARROW_DOWN = u'\ue015'
ARROW_LEFT = u'\ue012'
ARROW_RIGHT = u'\ue014'
ARROW_UP = u'\ue013'
BACKSPACE = u'\ue003'
BACK_SPACE = u'\ue003'
CANCEL = u'\ue001'
CLEAR = u'\ue005'
COMMAND = u'\ue03d'
CONTROL = u'\ue009'
DECIMAL = u'\ue028'
DELETE = u'\ue017'
DIVIDE = u'\ue029'
DOWN = u'\ue015'
END = u'\ue010'
ENTER = u'\ue007'
EQUALS = u'\ue019'
ESCAPE = u'\ue00c'
F1 = u'\ue031'
F10 = u'\ue03a'
F11 = u'\ue03b'
F12 = u'\ue03c'
F2 = u'\ue032'
F3 = u'\ue033'
F4 = u'\ue034'
F5 = u'\ue035'
F6 = u'\ue036'
F7 = u'\ue037'
F8 = u'\ue038'
F9 = u'\ue039'
HELP = u'\ue002'
HOME = u'\ue011'
INSERT = u'\ue016'
LEFT = u'\ue012'
LEFT_ALT = u'\ue00a'
LEFT_CONTROL = u'\ue009'
LEFT_SHIFT = u'\ue008'
META = u'\ue03d'
MULTIPLY = u'\ue024'
NULL = u'\ue000'
NUMPAD0 = u'\ue01a'
NUMPAD1 = u'\ue01b'
NUMPAD2 = u'\ue01c'
NUMPAD3 = u'\ue01d'
NUMPAD4 = u'\ue01e'
NUMPAD5 = u'\ue01f'
NUMPAD6 = u'\ue020'
NUMPAD7 = u'\ue021'
NUMPAD8 = u'\ue022'
NUMPAD9 = u'\ue023'
PAGE_DOWN = u'\ue00f'
PAGE_UP = u'\ue00e'
PAUSE = u'\ue00b'
RETURN = u'\ue006'
RIGHT = u'\ue014'
SEMICOLON = u'\ue018'
SEPARATOR = u'\ue026'
SHIFT = u'\ue008'
SPACE = u'\ue00d'
SUBTRACT = u'\ue027'
TAB = u'\ue004'
UP = u'\ue013'

例子1

这个例子是打开起点网首页,在输入框输入西游记,并按回车键。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
import time


# 打开一个Chrome浏览器
options = Options()
options.add_argument('--window-size=1000,700')
options.add_argument('--disable-infobars')
options.add_argument('--incognito')
driver = webdriver.Chrome(chrome_options = options)
# 请求起点网
driver.get('https://www.qidian.com/')
time.sleep(1)
input = driver.find_element_by_xpath('//*[@id="s-box"]')
input.send_keys('西游记')
time.sleep(1)
input.send_keys(Keys.ENTER)
time.sleep(1)
time.sleep(7)
driver.quit()

例子2

这个例子实现打开起点网首页,点击登陆,再在登陆界面的账号输入框输入一串数字。注意这里的登陆界面是首页的一个字框架,故要记得切换frame。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time


# 打开一个Chrome浏览器
options = Options()
options.add_argument('--window-size=1000,700')
options.add_argument('--disable-infobars')
options.add_argument('--incognito')
driver = webdriver.Chrome(chrome_options = options)
# 请求起点网
driver.get('https://www.qidian.com/')
time.sleep(1)
login = driver.find_element_by_xpath('//*[@id="login-btn"]')
login.click()
time.sleep(1)
iframe = driver.find_element_by_xpath('//*[@id="loginIfr"]')
driver.switch_to.frame(iframe)
input = driver.find_element_by_xpath('//*[@id="username"]')
input.send_keys('1501168759')

time.sleep(5)
driver.quit()

猜你喜欢

转载自blog.csdn.net/wzyaiwl/article/details/89001219