Selenium学习总结

点击后,打开新窗口,需要进行窗口切换才能继续操作

Selenium学习总结_第1张图片

弹出框处理:

Selenium学习总结_第2张图片
弹出框隐式等待不起作用,因为页面未加载

update_status = driver.switch_to.alert.text
driver.switch_to.alert.accept()

页面中存在多个frame:

# 把selenium切换到子页面中,mainFrame为切换到frame的name属性,也可以用其他唯一属性
driver.switch_to.frame("mainFrame")
driver.find_element_by_name("name").send_keys("iphone xs max")

CSS Selector用法:

多个class:每个class前加.
在这里插入图片描述
取任意元素属性进行定位:

driver.find_element_by_css_selector('[value="1"]').click()

Selenium学习总结_第3张图片

#父节点class:.site-nav-right.fr,a:nth-child(1)表示a标签第一个
welcome = self.driver.find_element_by_css_selector(".site-nav-right.fr > a:nth-child(1)").text

下拉框处理:

from selenium.webdriver.support.select import Select

# 11.获取下拉框元素定位
sheng = driver.find_element_by_id("add-new-area-select")
转换成Select,选取下拉框内容
Select(sheng).select_by_visible_text("山西省")
# 12.选择收货地区--市
shi = driver.find_elements_by_class_name("add-new-area-select")[1]
Select(shi).select_by_visible_text("大同市")
# 13.选择--地区
qu = driver.find_elements_by_tag_name("select")[2]
Select(qu).select_by_visible_text("市辖区")

Selenium学习总结_第4张图片

submit()方法:

适用于form表单中,可通过定位表单中的任一元素,提交表单

input标签日历处理:

定位到元素,使用javascript脚本语言移除readonly属性,直接sendkey()

#2.5.1 删除readonly属性
script = 'document.getElementById("date").removeAttribute("readonly")'
driver.execute_script(script)
#2.5.2 在生日输入框中输入新的生日
driver.find_element_by_id("date").clear()
driver.find_element_by_id("date").send_keys("1980-02-02")

智能等待:

显式等待:

from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait

WebDriverWait(driver, 30, 0.5).until(expected_conditions.alert_is_present())

隐式等待:

driver.implicitly_wait(5)

元素高级操作:双击,右击,长按,拖拽等

from selenium.webdriver import ActionChains

ActionChains(driver).double_click(driver.find_element_by_id("7")).perform()

Selenium学习总结_第5张图片

input type="file"上传文件处理:

#定位到元素,直接sendkey()
driver.find_element_by_name("file").send_keys("D:/quekou.png")

在这里插入图片描述

你可能感兴趣的:(Selenium学习总结)