入门Selenium(三)

定位一组元素

使用场景

  • 批量操作元素
  • 先获取一组对象,然后再在这组对象中过滤出需要具体定位的一些对象;

举例

在这里插入图片描述

from selenium import webdriver
import os
import time
browser = webdriver.Chrome()
# 找到本地文件的绝对路径
file_path = 'file:///'+os.path.abspath("E:/JavaWebCode/checkbox.html")
browser.get(file_path)
# 放大浏览器
browser.maximize_window()
# 让页面休眠
time.sleep(2)
# 定位所有同一组元素
inputs = browser.find_elements_by_tag_name('input')
for input in inputs:
    if input.get_attribute('type') == "checkbox":
        input.click()

time.sleep(2)
browser.quit()

多层框架/窗口定位

举例

在这里插入图片描述


from selenium import webdriver
import os
import time
browser = webdriver.Chrome()
file_path = 'file:///'+os.path.abspath("E:/JavaWebCode/frame.html")
browser.get(file_path)
browser.maximize_window()
time.sleep(3)

# 找到大框框
browser.switch_to.frame("f1")
# 找到小框框
browser.switch_to.frame("f2")
browser.find_element_by_id("kw").send_keys("嘻哈")
browser.find_element_by_id("su").click()
time.sleep(3)
# 返回默认页面
browser.switch_to.default_content()
browser.switch_to.frame("f1")
browser.find_element_by_link_text("click").click()
time.sleep(3)
browser.quit()

层级定位

举例

在这里插入图片描述

from selenium import webdriver
import os
import time
# 引入鼠标驱动包
from selenium.webdriver.common.action_chains import ActionChains
browser = webdriver.Chrome()
# 定位文件的绝对路径
file_path = 'file:///'+os.path.abspath("E:/JavaWebCode/level_locate.html")
browser.get(file_path)
browser.maximize_window()
time.sleep(3)
# 定义Link1
browser.find_element_by_link_text("Link1").click()
# 定位Another action的位置
pos = browser.find_element_by_link_text("Another action")
# 用鼠标移动到pos位置
ActionChains(browser).move_to_element(pos).perform()

time.sleep(2)
browser.quit()

下拉框处理

举例

在这里插入图片描述


from selenium import webdriver
import os
import time

browser = webdriver.Chrome()
file_path = 'file:///'+os.path.abspath("E:/JavaWebCode/drop_down.html")
browser.get(file_path)
browser.maximize_window()
time.sleep(2)

lists = browser.find_elements_by_tag_name('option')
time.sleep(3)
lists[3].click()
time.sleep(3)
browser.quit()

Div对话框处理

举例

在这里插入图片描述


from selenium import webdriver
import os
import time

browser = webdriver.Chrome()
file_path = 'file:///'+os.path.abspath("E:/JavaWebCode/modal.html")
browser.get(file_path)
browser.maximize_window()
time.sleep(3)

# 定位click
browser.find_element_by_id("show_modal").click()
time.sleep(3)
# 定位click me
browser.find_element_by_class_name("modal-body")
browser.find_element_by_link_text("click me").click()
time.sleep(3)
# 定位close
browser.find_element_by_class_name("modal-footer")
buttons = browser.find_elements_by_tag_name("button")
buttons[0].click()

time.sleep(3)
browser.quit()

上传文件操作

举例

在这里插入图片描述

from selenium import webdriver
import os
import time

browser = webdriver.Chrome()
file_path = 'file:///' + os.path.abspath("E:/JavaWebCode/upload.html")
browser.get(file_path)
browser.maximize_window()
time.sleep(5)

# 定位选择文件按钮
browser.find_element_by_tag_name("input").send_keys("D:/CCtalk_7.7.4.9.exe")
time.sleep(4)
browser.quit()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值