网站建设服务商推荐,电脑托管,优化最狠的手机优化软件,广告设计与制作实训总结2000字Selenium4中有多种元素定位方式#xff0c;主要包括以下几种#xff1a;
通过ID属性定位#xff1a;根据元素的id属性进行定位。通过name属性定位#xff1a;当元素没有id属性而有name属性时#xff0c;可以使用name属性进行元素定位。通过class name定位#xff1a;可以…Selenium4中有多种元素定位方式主要包括以下几种
通过ID属性定位根据元素的id属性进行定位。通过name属性定位当元素没有id属性而有name属性时可以使用name属性进行元素定位。通过class name定位可以根据元素的class属性进行定位。通过tag name定位根据HTML标签名进行定位。通过link text定位根据链接的文本内容进行定位。通过partial link text定位根据链接的部分文本内容进行定位。通过css selector定位根据CSS选择器规则进行定位。通过xpath定位根据XPath表达式进行定位。
分别对应by方法的
class By:Set of supported locator strategies.ID idXPATH xpathLINK_TEXT link textPARTIAL_LINK_TEXT partial link textNAME nameTAG_NAME tag nameCLASS_NAME class nameCSS_SELECTOR css selector示例
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleepclass TestCase(object):def __init__(self):# 初始化方法创建一个Chrome浏览器实例并打开百度首页。self.driver webdriver.Chrome()self.driver.get(https://www.baidu.com/)self.driver.maximize_window() # 窗口最大化sleep(1)def test_id(self):通过ID定位搜索框输入selenium并点击搜索按钮。:return:element self.driver.find_element(byBy.ID, valuekw)element.send_keys(selenium)print(type(element))self.driver.find_element(byBy.ID, valuesu).click()sleep(3)# self.driver.quit()def test_name(self):通过NAME定位搜索框输入selenium并点击搜索按钮。:return:element self.driver.find_element(byBy.NAME, valuewd)element.send_keys(selenium)print(type(element))self.driver.find_element(byBy.ID, valuesu).click()sleep(3)self.driver.quit()def test_link_text(self):通过链接文本定位百度首页并点击。:return:self.test_id()self.driver.find_element(By.LINK_TEXT, value百度首页).click()sleep(3)self.driver.quit()def test_partiallink_text(self):通过部分链接文本定位百度首页并点击。:return:self.test_id()self.driver.find_element(By.PARTIAL_LINK_TEXT, value首页).click()sleep(3)self.driver.quit()def test_xpath(self):通过XPath定位搜索框输入selenium并点击搜索按钮。:return:element self.driver.find_element(byBy.XPATH, value//*[idkw])element.send_keys(selenium)print(type(element))self.driver.find_element(byBy.XPATH, value//*[idsu]).click()sleep(3)self.driver.quit()def test_tag(self):通过标签名定位input元素。:return:element self.driver.find_element(byBy.TAG_NAME, valueinput)print(element)def test_css_selector(self):通过CSS选择器定位搜索框输入selenium并点击搜索按钮。:return:element self.driver.find_element(byBy.CSS_SELECTOR, value#kw)element.send_keys(selenium)print(type(element))self.driver.find_element(byBy.XPATH, value//*[idsu]).click()sleep(3)self.driver.quit()def test_class_name(self):通过类名定位搜索框输入selenium并点击搜索按钮。:return: element self.driver.find_element(byBy.CLASS_NAME, values_ipt)element.send_keys(selenium)print(type(element))self.driver.find_element(byBy.XPATH, value//*[idsu]).click()sleep(3)self.driver.quit()if __name__ __main__:case TestCase()# case.test_id()# case.test_name()# case.test_link_text()# case.test_partiallink_text()# case.test_xpath()# case.test_tag()# case.test_css_selector()case.test_class_name()工具类封装及使用
from time import sleepfrom selenium import webdriver
from selenium.webdriver.common.by import Bydef get_element(driver,*loc):
# 使用find_element方法查找元素传入定位方式和定位值e driver.find_element(*loc)
# 返回找到的元素return eif __name__ __main__:driver webdriver.Chrome()driver.get(https://www.baidu.com/)driver.maximize_window()loc (By.ID, kw)get_element(driver,*loc).send_keys(selenium)sleep(10)