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')
用的最多的是
By.IDBy.CLASS_NAMEBy.XPATH
这三个。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)