Selenium与页面的交互

news/2025/3/6 20:50:29/文章来源:https://www.cnblogs.com/zhanghong23/p/18749361

1、获取测试网址

from  selenium import webdriver
import timedriver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
time.sleep(10)
print('当前网址是:{0}'.format(driver.current_url))

2、获取当前页面代码

from  selenium import webdriverdriver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
print('获取当前页面代码:{0}'.format(driver.page_source))

3、获取当前的Title

from  selenium import webdriverdriver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
print('百度首页的Title为:{0}'.format(driver.title))

4、页面的前进和后退

 前进用到的方法是 forword,后退用到的方法是back

import time
from  selenium import webdriverdriver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
time.sleep(10)
driver.get('http://www.bing.com')
time.sleep(10)
driver.back()
print('获取当前网址为:{0}'.format(driver.current_url))
time.sleep(10)
driver.forward()
print('获取当前网址为:{0}'.format(driver.current_url))

5、关闭程序

Selenium中,quit方法用来退出驱动程序并关闭执行的浏览器,而close方法用来关闭执行的浏览器,所以关闭程序建议使用quit方法

6、多窗口实战

from selenium.webdriver.common.by import By
import time
from  selenium import webdriverdriver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://mail.sina.com.cn')
driver.implicitly_wait(30)
now_handle=driver.current_window_handle
time.sleep(10)
driver.find_element(By.LINK_TEXT,'注册').click()
time.sleep(10)
handles=driver.window_handles
for handle in handles:if handle!=now_handle:driver.switch_to.window(handle)time.sleep(10)driver.find_element(By.NAME,'email').send_keys('wuya')time.sleep(10)driver.close()
driver.switch_to.window(now_handle)
time.sleep(10)
driver.find_element(By.ID,'freename').send_keys('wuya')
time.sleep(10)
driver.quit()

7、刷新(refresh)

from selenium.webdriver.common.by import By
import time
from  selenium import webdriverdriver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
driver.find_element(By.ID,'kw').send_keys('测试')
time.sleep(5)
driver.refresh()
time.sleep(5)
driver.quit()

8、获取执行的浏览器(name)

import time
from  selenium import webdriverdriver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
time.sleep(5)
print('获取执行的浏览器:{0}'.format(driver.name))
driver.quit()

9、清空(clear)

from selenium.webdriver.common.by import By
import time
from  selenium import webdriverdriver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
so=driver.find_element(By.ID,'kw')
so.send_keys('测试')
time.sleep(3)
so.clear()
driver.quit()

10、获取多元素属性值(get_property)

from selenium.webdriver.common.by import By
import time
from  selenium import webdriverdriver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
so=driver.find_element(By.ID,'kw')
so.send_keys('测试')
time.sleep(9)
print('获取百度输入框中填写的关键字为:{0}'.format(so.get_property("value")))

11、检查元素是否可见(is_displayed)

from selenium.webdriver.common.by import By
import time
from  selenium import webdriverdriver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
time.sleep(10)
about=driver.find_element(By.LINK_TEXT,'关于百度')
time.sleep(10)
print('判断关于百度是否可见:{0}'.format(about.is_displayed()))

12、检查元素是否可编辑(is_enabled)

from selenium.webdriver.common.by import By
import time
from  selenium import webdriverdriver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
time.sleep(5)
so=driver.find_element(By.ID,'kw')
time.sleep(8)
print('判断百度输入框是否可编辑:{0}'.format(so.is_enabled()))
driver.quit()

 13、下拉框定位

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<center>喜欢的编程语言:<select id="nr"><option  value="" selected>请选择您喜欢的编程语言</option><option value="Python">Python语言</option><option value="Go">Go语言</option><option value="Java">Java语言</option></select>
</center>
</body>
</html>from selenium.webdriver.common.by import By
import time
from  selenium import webdriver
from selenium.webdriver.support.select import Selectdriver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///C:/Users/86151/Desktop/cailiao/index.html')
nr=driver.find_element(By.ID,'nr')
obj=Select(webelement=nr)
# 用value定位
# obj.select_by_value('Python')
# 用索引定位
# obj.select_by_index(2)
# 文本定位
obj.select_by_visible_text('Java语言')
time.sleep(10)
driver.quit()

 14、弹窗框实战

警告框

<!DOCTYPE html>
<html><head><meta charset="utf-8"><script>alert("这是弹出框提示文本弹窗")</script><title></title></head><body><p>alert是阻塞的函数</p><p>这句话只有在确认弹出框的提示文本后才会显示</p></body>
</html>import time
from  selenium import webdriverdriver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///C:/Users/86151/Desktop/cailiao/wenbenneirong.html')
print("获取弹窗中的文本信息:{0}".format(driver.switch_to.alert.text))
time.sleep(20)
driver.switch_to.alert.accept()
time.sleep(10)
driver.quit()

 确认框

<!DOCTYPE html>
<html><head><meta charset="utf-8"><script>var x; var r=confirm("请按下按钮!");if (r==true){x="你按下的是\"确定\"按钮。";}else{x="你按下的是\"取消\"按钮。";}document.write(x)</script><title></title></head><body></body>
</html>import time
from  selenium import webdriverdriver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///C:/Users/86151/Desktop/cailiao/%E6%96%B0%E5%BB%BA%20%E6%96%87%E6%9C%AC%E6%96%87%E6%A1%A3%20(2).html')
time.sleep(10)
driver.switch_to.alert.accept()
time.sleep(10)
driver.refresh()
time.sleep(5)
driver.switch_to.alert.dismiss()
time.sleep(5)
driver.quit()

输入框

<!DOCTYPE html>
<html><head><meta charset="utf-8"><script>var x; var name=prompt("请输入您的姓名:","")if (name!=null && name!=""){ x="你好! " + name + "";document.write(x)} </script><title></title></head><body></body>
</html>import time
from  selenium import webdriverdriver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///C:/Users/86151/Desktop/cailiao/%E6%96%B0%E5%BB%BA%20%E6%96%87%E6%9C%AC%E6%96%87%E6%A1%A3%20(3).html')
time.sleep(20)
driver.switch_to.alert.send_keys('zhangsan')
time.sleep(20)
driver.switch_to.alert.accept()
time.sleep(10)
driver.quit()

 15、鼠标悬浮操作

from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
import time
from  selenium import webdriverdriver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
time.sleep(5)
actionChains=ActionChains(driver)
nr=driver.find_element(By.ID,'s-usersetting-top')
time.sleep(3)
actionChains.move_to_element(nr).perform()
driver.find_element(By.LINK_TEXT,'搜索设置').click()
time.sleep(10)
driver.quit()

16、鼠标右键操作

from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
import time
from  selenium import webdriverdriver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
actionChains=ActionChains(driver)
nr=driver.find_element(By.ID,'kw')
time.sleep(3)
actionChains.context_click(nr).perform()
time.sleep(3)
driver.quit()

17、鼠标双击操作

from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
import time
from  selenium import webdriverdriver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
time.sleep(3)
actionChains=ActionChains(driver)
so=driver.find_element(By.ID,'su')
time.sleep(5)
actionChains.double_click(so).perform()
time.sleep(3)
driver.quit()

18、键盘事件

from selenium.webdriver.common.by import By
import time
from  selenium import webdriver
from selenium.webdriver.common.keys import Keysdriver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
so=driver.find_element(By.ID,'kw')
time.sleep(5)
so.send_keys('中国')
so.send_keys(Keys.CONTROL,'a')
so.send_keys(Keys.CONTROL,'C')
so.send_keys(Keys.BACKSPACE)
driver.get('http://www.bing.com')
nr=driver.find_element(By.ID,'sb_form_q')
nr.send_keys(Keys.CONTROL,'v')
time.sleep(5)
driver.quit()

19、浏览器滑动操作

from selenium.webdriver.common.by import By
import time
from  selenium import webdriverdriver=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()
down="var q=document.documentElement.scrollTop=10000"
time.sleep(10)
driver.execute_script(down)
up="var q=document.documentElement.scrollTop=0"
time.sleep(10)
driver.execute_script(up)
driver.quit()

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/894801.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

日报202535

今天总算是把项目组的事情解决了,于是正式开了Springboot+vue的学习,用了一晚上的时间配置好了环境(更新了JDK与Maven,重新设置了idea的设置) 然后了解了springboot的配置文件和基本使用,跑出了第一个spring的网页。这看着真有意思吧感觉比jsp方便不少。

Java SPI机制使用

1. Service Provider Interface SPI描述接口提供者优先规定接口要求,然后交由具体的实现者对接口进行内容的实现;2. 实现 //1. 定义接口 public Interface Demo_interface{//具体实现者必须要实现的内容void doexcute(); } //2.实现接口 public class Demo_Impl implements D…

互联网寒冬下,如何写好一份.NET求职简历?附带简洁免费的简历模板!!!

前言 在当今互联网行业的寒冬时期,每一位求职者都面临着更为激烈的竞争环境,如何在众多.NET候选人中脱颖而出,成为企业心仪的对象,用心准备一份简历显得尤为重要。简历不仅是个人职业经历的简要概述,更是向潜在雇主、HR展示你专业技能、项目经验、个人特质以及求职诚意的关…

注册github

今天成功注册了github账户,并上传了一个小项目。

HarmonyOS Next 属性动画和转场动画

HarmonyOS Next 属性动画和转场动画 在鸿蒙应用开发中,动画是提升用户体验的关键要素。通过巧妙运用动画,我们能让应用界面更加生动、交互更加流畅,从而吸引用户的注意力并增强其使用粘性。鸿蒙系统为开发者提供了丰富且强大的动画开发能力,其中属性动画是整个动画体系的核…

C语言小记

int a =10; int b=3; int c= pow(10,3); //表示10的三次方unsigned 表示不用补码表示 //数字的输入,%d 包括 char,short,int%u unsigned%ld long long%lu unsigned long long输入 float 是 %f double 是 %lf shuchu dou shi %f保留小数的话是大于5才入,小于等于5舍去强…

系统流程图联系

练习题一:图书馆借阅管理系统流程图绘制 背景说明:在学校图书馆借阅管理系统中,学生借阅图书需要经过一系列流程。首先,学生携带校园卡前往借阅处,工作人员通过刷卡设备读取学生信息,系统验证学生身份是否有效。若身份无效,系统提示原因(如校园卡过期、欠费等)。若身份…

推荐4本专著《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》书,非常感谢

4本书推荐《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》由清华大学出版社资深编辑赵佳霓老师策划编辑的新书《AI芯片开发核心技术详解》已经出版,京东、淘宝天猫、当当等网上,相应陆陆续续可以购买。该…