selenium---与页面交互

本文主要探讨了使用Selenium进行网页交互的方法,包括元素定位、点击、输入和页面导航等操作,旨在实现自动化测试和网页自动化任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#与页面交互
'''
<input type="text" name="passwd" id="passwd-id" />
------------------
element = driver.find_element_by_id("passwd-id")
element = driver.find_element_by_name("passwd")
element = driver.find_element_by_xpath("//input[@id='passwd-id']")
使用`XPATH`时,你必须注意,如果匹配超过一个元素,只返回第一个元素。
如果上面也没找到,将会抛出 ``NoSuchElementException``异常
'''
#填写表格
#切换下拉框  寻找页面第一个 “SELECT” 元素, 并且循环他的每一个OPTION元素, 打印从utamen的值,然后按顺序都选中一遍
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("https://www.python.org")
assert driver.title("Python")
element = driver.find_element_by_xpath("//select[@name='name']")
all_options = element.find_element_by_tag_name("option")
for option in all_options:
    print("Value is: %s" % option.get_attribute("value"))
    option.click()

#WebDriver的支持类包括一个叫做 ``Select``的类,提供有用的方法处理这些内容:
from selenium.webdriver.support.ui import Select
select = Select(driver.find_element_by_tag_name('name'))
select.select_by_index(index)
select.select_by_visible_text("text")
select.select_by_value(value)

#取消选择已经选择的元素:
select = Select(driver.find_element_by_id('id'))
select.deselect_all()

#列出所有已经选择的选项
select = Select(driver.find_element_by_xpath("xpath"))
all_selected_options = select.all_selected_options

#获得所有选项
options = select.options

#提交  Assume the button has the ID "submit" :)
driver.find_element_by_id("submit").click()
#WebDriver对每一个元素都有一个叫做 “submit” 的方法,如果你在一个表单内的 元素上使用该方法,
# WebDriver会在DOM树上就近找到最近的表单,返回提交它。
#  如果调用的元素不再表单内,将会抛出``NoSuchElementException``异常:
element.submit()

#拖放  使用拖放,无论是移动一个元素,或放到另一个元素内:
element = driver.find_element_by_tag_name("source")
target = driver.find_element_by_tag_name("target")

from selenium.webdriver import ActionChains
action_chains = ActionChains(driver)
action_chains.drag_and_drop(element, target).perform()

# WebDriver 支持在不同的窗口之间移动,只需要调用``switch_to_window``方法即可:
driver.switch_to_window("window_name")
# 如何查看 driver指向的当前窗口,查看javascript或者连接代码:
# <a href="somewhere.html" target="windowName">Click here to open a new window</a>
#迭代 所有打开的窗口
for handle in driver.window_handles:
    driver.switch_to_window(handle)
#不同的frame 切换
driver.switch_to_frame("frameName")
# 用 “.” 还可以获取子frame,并通过下标指定任意frame,
driver.switch_to_frame("frameName.0.child")
#完成frame中的工作,返回父frame:
driver.switch_to_default_content()

#处理弹出对话框  某些动作之后可能会触发弹出对话框,访问对话框
alert = driver.switch_to_alert()
#它将返回当前打开的对话框对象。使用此对象,您现在可以接受、排除、读取其内容,
# 甚至可以在prompt对话框中输入(xxx)
# 这个接口对alert, confirm, prompt 对话框效果相同。

#访问浏览器历史记录
# 打开一个页面
driver.get("http://www.example.com")
#在浏览历史中前进和后退你可以使用:
driver.forward()
driver.back()

#操作Cookies
# 打开一个页面
driver.get("http://www.example.com")

# 现在设置Cookies,这个cookie在域名根目录下(”/”)生效
cookie = {'name': 'foo', 'value': 'bar'}
driver.add_cookie(cookie)

# 现在获取所有当前URL下可获得的Cookies
driver.get_cookies()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值