元素定位八大方法
1、find_element_by_id 通过id定位
find_element(By.ID,"kw") #建议使用
2、find_element_by_name 通过标签名定位
find_element(By.NAME,"wd") #建议使用
3、find_element_link_text 通过链接文本定位
find_element(By.LINK_TEXT,"百度首页") #建议使用
4、find_element_partial_link_text 通过部分链接文本定位
find_element(By.PARTIAL_LINK_TEXT,"度首") #建议使用
5、find_element_by_xpath 通过xpath定位
find_element(By.XPATH,'//*[@id="kw"]') #建议使用
6、find_element_by_tag_name 通过标签名定位
find_element(By.TAG_NAME,'input') #建议使用
7、find_element_by_css_selector 通过css选择器定位
find_element(By.CSS_SELECTOR,"#s-top-left > a:nth-child(7)") #建议使用
8、find_element_by_class_name 通过css class定位
find_element(By.CLASS_NAME,"s_ipt") #建议使用
find_element() 中 类型为空,默认为By.ID文章来源地址https://www.toymoban.com/news/detail-856171.html
from selenium import webdriver
from selenium.webdriver.common.by import By
class TestCase(object):
def __init__(self):
self.driver = webdriver.Chrome() # from .chrome.webdriver import WebDriver as Chrome # noqa
self.driver.maximize_window()
self.driver.get("https://www.baidu.com/")
def test_id(self):
elementId = self.driver.find_element(By.ID,"kw").send_keys("selenium") #根据ID定位 ID是唯一的
def test_name(self):
#elementName = self.driver.find_element_by_name("wd")
elementName = self.driver.find_element(By.NAME,"wd") #根据Name定位,若存在多个相同name,会返回第一个
def test_link_text(self):
self.test_id()
#self.driver.find_element_by_link_text("百度首页").click()
self.driver.find_element(By.LINK_TEXT,"百度首页").click() # 根据 Link_Text定位(链接类文本)
def test_partial_link_text(self): #部分的链接类文本
self.test_id()
self.driver.find_element(By.PARTIAL_LINK_TEXT,"度首").click()
def test_xpath(self):
self.driver.find_element(By.XPATH,'//*[@id="kw"]').send_keys("selenium")
def test_tag_name(self):
input = self.driver.find_element(By.TAG_NAME,'input')
print(input) #<selenium.webdriver.remote.webelement.WebElement (session="371459cca6375285450f39039bf5bb32", element="f.74336247EAF5E2710B160F4F13F43681.d.5EC84632664EB0B7AF3D39F7775B5967.e.14")>
def test_css_selector(self):
self.driver.find_element(By.CSS_SELECTOR,"#s-top-left > a:nth-child(7)").click()
def test_class_name(self):
self.driver.find_element(By.CLASS_NAME,"s_ipt").send_keys("selenium")
if __name__ == '__main__':
case =TestCase()
#case.test_id()
#case.test_name()
#case.test_link_text()
#case.test_partial_link_text()
#case.test_xpath()
#case.test_tag_name()
#case.test_css_selector()
case.test_class_name()
文章来源:https://www.toymoban.com/news/detail-856171.html
到了这里,关于Selenium(一):八大元素定位的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!