python点击弹出悬浮框_selenium+python:点击元素、alert弹框、鼠标操作(左键点击、右键点击、双击、鼠标悬浮)、下拉选项框、窗口切换等操作的处......

本文介绍了使用Python的Selenium库进行网页交互的方法,包括点击元素、处理alert弹框、模拟鼠标操作(如左键点击、右键点击、双击、悬浮)以及处理下拉选项框。此外,还讲解了如何在多个窗口间切换,以实现更复杂的网页自动化测试。
摘要由CSDN通过智能技术生成

一、鼠标点击元素操作

driver=webdriver.Chrome()

driver.maximize_window()

driver.get("https://www.baidu.com/")

#找到“登录”这个按钮,并且点击(click())

WebDriverWait(driver,15).until(EC.visibility_of_element_located((By.XPATH,'//div[@id="u1"]//a[text()="登录"]'))).click()

二、alter弹框

driver=webdriver.Chrome()

driver.maximize_window()

driver.get("E:\\python08\\web_selenium\\HTML_HomeWork.html")

driver.execute_script("window.alert('这是一个测试Alert弹窗');")

WebDriverWait(driver,30).until(EC.alert_is_present())        #等待直到alert弹框出现

#切换到该alert弹框

alert=driver.switch_to.alert

#获取alert弹框的文本

text=alert.text

print(text)

#接受该alert弹框的内容

alert.accept()

#不接受(取消)

alert.dismiss()

三、鼠标操作

在进行页面操作时,需要用鼠标进行左键点击、右键点击、双击、鼠标悬浮(比如鼠标移到某个位置就会出现一些元素)、鼠标拖动等操作,这时需要导入ActionChains模块

perform() 执行所有ActionChains 中存储的行为

click_and_hold(element)左键点击

context_click(elem) 右击

double_click(elem) 双击

drag_and_drop(source,target) 拖动

move_to_element(elem) 鼠标悬停

例如:百度首页,鼠标移动到“设置”时会出现下拉选项

from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome()

driver.maximize_window()

driver.get("http://www.baidu.com")

#找到“设置”这个元素

element = driver.find_element_by_xpath('//div[@id="u1"]//a[@name="tj_settingicon"]')

#实例化ActionChains类

#调用鼠标操作

#最后,调用perform()去执行所有的鼠标动作。

ac = ActionChains(driver)

# 鼠标悬浮

ac.move_to_element(element)

# 执行鼠标动作

ac.perform()

以上操作,可以合起来写成一条代码:ActionChains(driver).move_to_element(element).perform()

tips:鼠标悬浮的下拉列表元素定位:CTRL + Shift + C,松开,移动到要定位的元素处

四、下拉选项框

类似于这种下拉选项框,然后选择某个选项的操作

from selenium.webdriver.support.ui import Select

sele_obj = driver.find_element_by_xpath('//select[@name="ft"]')      #找到该下拉选项框

#实例化

select = Select(sele_obj)

#根据下标选值

select.select_by_index(2)

#根据value属性选值

select.select_by_value("rtf")

#根据文本内容选值

select.select_by_visible_text("Adobe Acrobat PDF (.pdf)")

五、窗口切换

网页上的某些操作会打开新的窗口,如果要到新的窗口去做其他操作,就需要进行窗口切换

#打开一个浏览器 - 与浏览器之间的会话开始

driver = webdriver.Chrome()

#全屏操作

driver.maximize_window()

driver.get("http://www.baidu.com")

driver.find_element_by_id("kw").send_keys("火车票")   #百度首页输入“火车票”

driver.find_element_by_id("su").click()                        #点击查询

#等待元素出现

xpath_ele = '//h3/a[contains(text()," 12306")]'

ele_locator = (By.XPATH,xpath_ele)

WebDriverWait(driver,30,1).until(EC.visibility_of_element_located(ele_locator))

#获取未操作前的窗口总数 - 只有1个窗口

handles = driver.window_handles

print(handles)

#点击 - 带来窗口数量的变化 - 会有2个窗口(新窗口出现的时间把控不了)

driver.find_element_by_xpath(xpath_ele).click()

WebDriverWait(driver,10).until(EC.new_window_is_opened(handles))

#重新获取一下窗口列表 - 有2个窗口了

handles = driver.window_handles

print(handles)

#切换到新的窗口

driver.switch_to.window(handles[-1])

切换到第一个窗口

# driver.switch_to.window(windows[0])

#等待元素出现再操作

WebDriverWait(driver,20).until(EC.visibility_of_element_located((By.XPATH,'//a[@href="XXXXXX"]')))

driver.find_element_by_xpath('//a[@href="XXXXXXX"]').click()

#关掉当前页面,回到第一个页面。

driver.close()

未完待续。。。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值