Web自动化测试-02

 一、Selenium基本元素定位法:通过HTML标签元素的ID、NAME、CLASS_NAME、TAG_NAME、LINK_TEXT、PARTIAL_LINK_TEXT进行定位

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By

#隐藏正在受到自动软件测试控制这句话
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])

#打开百度,输入关键字搜索
#selenium3版本的写法,老版本
url = "https://www.baidu.com/"
driver = webdriver.Chrome(options=chrome_options)
#把浏览器最大化
driver.maximize_window()
driver.get(url)

#selenium4的写法,新版本
# service = Service("../../chromedriver.exe")
# driver = webdriver.Chrome(service=service)
#driver.get(url)

#使用id定位输入框,并输入内容
# input_element = driver.find_element_by_id("kw")
# input_element.send_keys("秋叶")
#使用定位搜索按钮,并点击
# search_button = driver.find_element_by_id("su")
# search_button.click()

#新版本写法
input_element = driver.find_element(by=By.NAME, value="wd")
input_element.send_keys("秋叶")
search_button = driver.find_element(by=By.ID, value="su")
search_button.click()

 二、Selenium句柄的切换

from selenium import webdriver
from selenium.webdriver.common.by import By

#隐藏浏览器正在受到自动软件测试控制这句话
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option("excludeSwitches",["enable-automation"])

#京东地址
url = "https://www.jd.com"
driver = webdriver.Chrome(options=chrome_options)
#浏览器最大化
driver.maximize_window()
driver.get(url)

#点击家用电器跳转
driver.find_element(by=By.LINK_TEXT, value="家用电器").click()

#拿到所有句柄
handlers = driver.window_handles
print(driver.title)
#切换到当前句柄
for h in handlers:
if h != driver.current_window_handle:
driver.switch_to.window(h)
print("当前的句柄是" + driver.title)

三、Selenium通过CSS_SELECTOR定位元素

from selenium import  webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
import time

# css学习的参考手册
# https://www.w3school.com.cn/cssref/css_selectors.asp

#屏蔽浏览器正在受到自动化软件测试控制这句话
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option('excludeSwitches',
['enable-automation'])


#打开京东网址
driver = webdriver.Chrome(options=chrome_options)
#浏览器最大化
driver.maximize_window()
#打开京东
url = "https://www.jd.com"
driver.get(url)
#通过CSS_SELECTOR定位元素
#定位输入框,并输入搜索内容
# driver.find_element(by=By.CSS_SELECTOR, value="#key").send_keys("鼠标")
# 定位搜索按钮,并点击
# driver.find_element(by=By.CSS_SELECTOR, value=".button").click()
# 第二种定位搜索按钮的方式
# driver.find_element(by=By.CSS_SELECTOR, value="#search > div > div.form > button").click()

jiadian_element = driver.find_element(by=By.CSS_SELECTOR,
# #J_cate > ul > li:nth-child(1) > a
value="#J_cate ul li:nth-child(1) a")
#jiadian_element.click()

#鼠标悬停
ActionChains(driver).move_to_element(jiadian_element).perform()
time.sleep(2)
tv = driver.find_element(by=By.CSS_SELECTOR,value="#cate_item1 > div.cate_part_col1 > div.cate_detail > dl.cate_detail_item.cate_detail_item1 > dd > a:nth-child(1)")
tv.click()

#句柄切换
handlers = driver.window_handles
print(driver.title)
for h in handlers:
if h != driver.current_window_handle:
driver.switch_to.window(h)
print("当前的句柄是" + driver.title)

#定位小米电视,并点击
driver.find_element(by=By.CSS_SELECTOR, value="#J_goodsList > ul > li:nth-child(5) > div > div.p-name.p-name-type-3 > a > em").click()

 

四、Selenium通过XPATH定位元素

from selenium import  webdriver
from selenium.webdriver.common.by import By

# 学习手册:https://www.w3school.com.cn/xpath/index.asp

#打开京东
url = "https://www.jd.com"
driver = webdriver.Chrome()
#浏览器最大化
driver.maximize_window()
driver.get(url)

#使用xpath定位元素,输入关键字进行搜索 //*[@id="search"]/div/div[2]/button
# driver.find_element(by=By.XPATH, value="//*[@id=\"key\"]").send_keys("键盘")
# driver.find_element(by=By.XPATH, value="//*[@id=\"search\"]/div/div[2]/button").click()
driver.find_element(by=By.XPATH,value="//*[@id='J_cate']/ul/li[1]/a").click()

index_page_handler = driver.current_window_handle
handlers = driver.window_handles
for h in handlers:
if h != index_page_handler:
driver.switch_to.window(h)
tv = driver.find_element(by=By.XPATH,
value="//*[@id=\"app\"]/div/div[2]/div/div[1]/div[1]/div/div/div/div/div/ul/li[1]/a")
jiadian_handler = driver.current_window_handle
tv.click()
handlers = driver.window_handles
for h in handlers:
if h != index_page_handler or h!= jiadian_handler:
driver.switch_to.window(h)
print(driver.title)

driver.execute_script("window.scrollBy(0,800)")
# driver.find_element(by=By.XPATH,value="//*[@id=\"app\"]/div/div[3]/div/div[1]/div/div[2]/div/div/div[1]/div/div[1]/div").click()
import time
time.sleep(3)
driver.find_element(by=By.XPATH,
value="//div[@uuid='1585301121700']/div[2]/div/div/div[1]/div").click()

posted @ 2023-05-21 14:13  萍水测试  阅读(18)  评论(0编辑  收藏  举报