ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

21、Selenium参数设置

2022-02-26 20:04:49  阅读:188  来源: 互联网

标签:webdriver 21 get chrome Selenium draggable import options 参数设置


selenium参数的使用

1 元素拖拽

要完成元素的拖拽,首先你需要指定被拖动的元素和拖动目标元素,然后利用 ActionChains 类来实现

<!doctype html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>jQuery UI Draggable - Auto-scroll</title>
	<link rel="stylesheet" href="http://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
	<style>
	#draggable, #draggable2, #draggable3 { width: 100px; height: 100px; padding: 0.5em; float: left; margin: 0 10px 10px 0; }
    body {font-family: Arial, Helvetica, sans-serif;}
    table {font-size: 1em;}
    .ui-draggable, .ui-droppable {background-position: top;}
	</style>
	<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
	<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
	<script>
	$( function() {
		$( "#draggable" ).draggable({ scroll: true });
		$( "#draggable2" ).draggable({ scroll: true, scrollSensitivity: 100 });
		$( "#draggable3" ).draggable({ scroll: true, scrollSpeed: 100 });
	} );
	</script>
</head>
<body>
<div id="draggable" class="ui-widget-content">
	<p>Scroll set to true, default settings</p>
</div>

<div id="draggable2" class="ui-widget-content">
	<p>scrollSensitivity set to 100</p>
</div>

<div id="draggable3" class="ui-widget-content">
	<p>scrollSpeed set to 100</p>
</div>
<div style="height: 5000px; width: 1px;"></div>
</body>
</html>

以下实现元素从 source 拖动到 target 的操作

import os
chrome.get(f'file:///{os.path.abspath("./html/scroll.html")}')

div1 = chrome.find_element_by_id('draggable')
div2 = chrome.find_element_by_id('draggable2')
div3 = chrome.find_element_by_id('draggable3')

from selenium.webdriver import ActionChains
from time import sleep

sleep(2)
action_chains = ActionChains(chrome)
# 将页面上的第一个能被拖拽的元素拖拽到第二个元素位置 
action_chains.drag_and_drop(div1, div2).perform()

# 将页面上的第三个能拖拽的元素,向右下拖动10个像素,共拖动5次
a = action_chains.drag_and_drop_by_offset(div3, 10, 10)
for i in range(5):
    a.perform()
    sleep(2) 

2. 参数的使用

chrome59版本以后可以变成无头的浏览器,加以下参数

options = webdriver.ChromeOptions()
options.add_argument('--headless')
chrome = webdriver.Chrome(chrome_options=options)
chrome.get("http://www.baidu.com")

代理模式

from selenium import webdriver
option = webdriver.ChromeOptions()
option.add_argument("--proxy-server=http://61.138.33.20:808")
chrome = webdriver.Chrome(chrome_options=option)
chrome.get('http://httpbin.org/get')
info = chrome.page_source

print(info)

防检测设置

from selenium.webdriver import Chrome
from selenium.webdriver import ChromeOptions

options = ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-automation'])

options.add_experimental_option('useAutomationExtension', False)
chrome = webdriver.Chrome(chrome_options=option)
chrome.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
  "source": """
    Object.defineProperty(navigator, 'webdriver', {
      get: () => false
    })
  """
})

chrome.get('http://httpbin.org/get')
info = chrome.page_source

print(info)

使用 window.navigator.webdriver 检测

标签:webdriver,21,get,chrome,Selenium,draggable,import,options,参数设置
来源: https://www.cnblogs.com/wangyanfu/p/15940285.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有