(selenium系列之一)selenium元素定位

下周就要入职新公司了,提前把基础知识再巩固一下。

selenium 有两个不同的类都提供了元素定位的方法:webdriver , By

1. 调用WebDriver类里的方法

参考源码: %pythonENV%\Lib\site-packages\selenium\webdriver\remote\webdriver.py

使用方法为:

#coding=utf-8
from selenium import webdriver
import time
import sys
reload(sys)
sys.setdefaultencoding('utf8')

driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.find_element_by_id("kw").send_keys('selenium')
driver.find_element_by_id('su').click()
time.sleep(3)
assert "selenium_百度搜索" in driver.page_source
driver.quit()

'''
定位方式如下:
ele1 = driver.find_element_by_id("located_id")
ele2 = driver.find_element_by_name("located_name")
ele3 = driver.find_element_by_class_name("located_class_name")
ele4 = driver.find_element_by_tag_name("located_tag_name")
ele5 = driver.find_element_by_xpath("located_xpath")
ele6 = driver.find_element_by_css_selector("located_css")
ele7 = driver.find_element_by_link_text("located_link_text")
ele8 = driver.find_element_by_partial_link_text("located_partial_link_text")
'''

2. 用By 定位元素,webdriver 还提供了另一种写法,统一调用find_element()方法,第一个参数用By来声明定位类型,第二个参数传入定位值,具体实现如下:

参考源码:%pythonENV%\Lib\site-packages\selenium\webdriver\remote\webdriver.py

#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep

driver=webdriver.Chrome()
driver.get("http://www.baidu.com/")
driver.implicitly_wait(3)

driver.find_element(By.ID,'kw').clear()
driver.find_element(By.NAME,'wd').send_keys("Selenium")
# driver.find_element(By.CLASS_NAME,'s_ipt').send_keys("Selenium")
# driver.find_element(By.CSS_SELECTOR,"#kw").send_keys("Selenium")

driver.find_element(By.ID,'su').click()
sleep(3)
driver.quit()

'''
ele1 = driver.find_element(By.ID,'located_id')
ele2 = driver.find_element(By.NAME,'located_name')
ele3 = driver.find_element(By.CLASS_NAME,'located_class_name')
ele4 = driver.find_element(By.TAG_NAME,'located_tag_name')
ele5 = driver.find_element(By.LINK_TEXT,'located_link_text')
ele6 = driver.find_element(By.PARTIAL_LINK_TEXT,'located_partial_link_text')
ele7 = driver.find_element(By.XPATH,'located_xpath')
ele8 = driver.find_element(By.CSS_SELECTOR,'located_css_selector')
'''

猜你喜欢

转载自blog.csdn.net/m0_37553368/article/details/81629986