首页 > 其他分享 >selenium的基本使用

selenium的基本使用

时间:2024-03-05 10:00:11浏览次数:22  
标签:基本 option selenium value element 使用 input find browser

1. 基本使用
browser.current_url
browser.get_cookies()
browser.page_source

2. 定位元素

from selenium.webdriver.common.by import By
input_first = browser.find_element(by=By.ID, value='q')
input_first = browser.find_element(by=By.CSS_SELECTOR, value='#q')
input_first = browser.find_element(by=By.XPATH, value='//*[@id="q"]')
input_first = browser.find_element(by=By.CLASS_NAME, value='')
input_first = browser.find_element(by=By.LINK_TEXT, value='')
input_first = browser.find_element(by=By.PARTIAL_LINK_TEXT, value='')
input_first = browser.find_element(by=By.TAG_NAME, value='')

**3. **节点交互
send_keys
click
clear

4. 拖拽

source = browser.find_element(by=By.CSS_SELECTOR, value='.ui-droppable') # 定位拖拽位置
target = browser.find_element(by=By.CSS_SELECTOR, value='.ui-droppable') # 目标位置
actions = ActionChains(browser)
actions.drag_and_drop(source, target)
actions.perform() # 执行

5. js操作

browser.execute_script('window.scrollTo(0, document.body.scrollHeight)')# 滚动条
browser.execute_script('alert("To Bottom")')# 提示框

6. 获取节点信息

logo.get_attribute('')  # 获取属性值
input = browser.find_element(by=By.CLASS_NAME, value='logo-title')
input.text   # 获取文本值
input.id# id
input.location# 相对位置
input.tag_name# 标签名称
input.size# 节点宽高

7. 切换子页面

browser.switch_to.frame('')
browser.switch_to.parent_frame('')

8. 常见等待

显式等待-等待节点

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import  expected_conditions as EC
from selenium.webdriver.common.by import By
browser.get('')
# 指定最长等待时间
wait = WebDriverWait(browser, 10)
# 传入等待条件,等待节点出现
input = wait.until(EC.presence_of_element_located(By.ID, 'q'))
# 判断按钮是否可点击
buttion = wait.until(EC.element_to_be_clickable(By.CSS_SELECTOR, '.btn-search'))

隐式等待-等时间

browser.implicitly_wait(10)
  • 前进
    browser.forward()
  • 后退
    browser.back()

9. cookies

# 获取所有Cookie
print(browser.get_cookies())
# 添加一个Cookie
browser.add_cookie({
    'name':'name',
    'domain':'',
    'value':'germey'
})
# 删除所有Cookie
browser.delete_all_cookies()

10. 反爬
使用CDP

# 实例化对象
option = ChromeOptions()
# 开启实验性功能
option.add_experimental_option('excludeSwitches', ['enable-automation'])
# 隐藏正在受到自动软件的控制
option.add_experimental_option('useAutomationExtension', False)
browser = webdriver.Chrome(options=option)
# 修改webdriver值
browser.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {
    'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'
})
browser.get('https://antispider1.scrape.center')
browser.close()

11. 无头

option.add_argument('--headless')
browser = webdriver.Chrome(options=option)
browser.set_window_size(1366, 768)

标签:基本,option,selenium,value,element,使用,input,find,browser
From: https://www.cnblogs.com/hellojacker/p/18051221

相关文章

  • java反编译工具CFR使用
    java-jarcfr-0.151.jar--helpjava-jarcfr-0.151.jarWindupClasspathTypeLoader.class结果输出到out文件夹java-jarcfr-0.151.jarWindupClasspathTypeLoader.class--outputpath./out反编译jar文件,结果输出到output_jar文件夹Desktopjava-jarcfr-0.151.jar......
  • 基本操作之——多维空间欧几里得距离距离计算及标量积计算
    dev_clear_window()dev_disp_text('欧几里得距离计算','window',200,200,'black','box_color','#00ffffc0')V1:=[18.8,132.4,33,19.3]dev_disp_text('V1='+V1,'window',220,200,'black',......
  • 基本操作之——正弦函数绘制
    1.周期为2pi正弦函数绘制dev_close_window()dev_open_window(0,0,512,512,'black',WindowID)dev_set_part(0,0,511,511)old_x:=0old_y:=0Rate:=1dev_set_color('red')forx:=1to511by4y:=-sin(x/511.0*2*3.1416*Rate......
  • Java的基本概念
    Java的工作方式:你写出一个应用程序,能够在你朋友的任何产品上执行1.程序员编写源代码2.源代码通过编译器(编译器检查代码是否错误,如果错误,则需要进行更改)3.源代码没有错误则进行输出,编译器将源代码编译成字节码,任何支持Java的装置都可以转译成可执行内容4.通过Java虚拟机(JVM)进......
  • 基本操作之——位运算
    dev_clear_window()dev_disp_text('数128位左移两位为'+lsh(128,2),'window','center','center','black','box_color','#00ffffc0') dev_clear_window()dev_disp_text('数128位右移两位为'+rsh(12......
  • 数据库系列:大厂使用数据库中间件解决什么问题?
    相关文章数据库系列:MySQL慢查询分析和性能优化数据库系列:MySQL索引优化总结(综合版)数据库系列:高并发下的数据字段变更数据库系列:覆盖索引和规避回表数据库系列:数据库高可用及无损扩容数据库系列:使用高区分度索引列提升性能数据库系列:前缀索引和索引长度的取舍数据库系列:My......
  • 2024-selenium-问题一:java.io.IOException: Invalid Status code=403 text=Forbidden
    问题截图:  问题分析: 参考网址:https://blog.csdn.net/weixin_46739493/article/details/134163739问题解决:1、chrome版本为:版本114.0.5735.199(正式版本);driver的版本为:114.0.5735.90; java-seleium版本为:4.0.0-rc-21<dependency>2<groupId>org.......
  • 13_.NET 中 IDisposable 接口的作用和使用
    .NET中IDisposable接口的作用和使用IDisposable接口是.NET框架中定义的一个接口,用于释放非托管资源。非托管资源是指由操作系统或其他外部库管理的资源,例如文件句柄、数据库连接和网络套接字。IDisposable接口的作用是提供一种标准的方式来释放非托管资源。这有助......
  • Jetty使用入门
    社区当前推荐开发者使用Jetty12.X版本。依据EndofCommunitySupportforJetty9.x-June2022,社区对Jetty9.x的支持,已在2022年6月1日停止。依据EndofCommunitySupportforJetty10/Jetty11-January2024,社区对Jetty10.X、Jetty11.X的支持,已在2024年1月停止。......
  • 在vue项目中使用scss预处理器
    从Node.js12版本开始,`node-sass`被标记为不再维护,并且从npm上已经被移除。现在,推荐使用`sass`包替代`node-sass`。`sass`包是Sass的JavaScript实现,它比`node-sass`更快速、更现代化,并且与最新版本的DartSass兼容。在Vue项目中使用Sass,你应该安装sass包......