赞
踩
from selenium import webdriver
八中定位方法
driver.find_element_by_id(‘id’)
driver.find_element_by_name('name')
driver.find_element_by_tag_name('tag_name')
driver.find_element_by_xpath('xpath')
driver.find_element_by_link_text('link_text')
driver.find_element_by_class_name('class_name')
driver.find_element_by_css_selector('css_selector') # 需要掌握css语法
driver.find_element_by_partial_link_text('partial_link_text')
如果是获取多个,则需要在element后边加s,使用find_elements_by_xx。
使用以上这八种方式,如果使用的是最新版本的selenium,可能会产生warning警告。提示以上方法即将被废弃。
作为一种解决办法,可以替换成下边这种方式,直接使用find_element()方法:
from selenium import webdriver
from selenium.webdriver.common.by import By
driver.find_element(By.xxx, '')
find_element()有两个参数,第一个是定位的方法,第二个是定位的内容。
传统的八种方法底层也是使用find_element()方法写的。
定位一个元素时使用find_element(),定位多个元素时使用find_elements()。
具体示例:
以定位百度搜索框为例
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
# 通过id定位,网页元素的id通常是唯一的
driver.find_element(By.ID, 'kw').send_keys('xxxx')
# 通过类名定位元素
driver.find_element(By.CLASS_NAME, 's_ipt').send_keys('xxx')
# 根据name属性的值来定位元素
driver.find_element(By.NAME, 'wd').send_keys('xxx')
# 根据xpath语法来定位元素
driver.find_element(By.XPATH, '//input[@id="kw"]').send_keys('xx')
用的最多的是
这三个。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。