Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
泰斯特Test
violent-webdriver
提交
88d86c1d
V
violent-webdriver
项目概览
泰斯特Test
/
violent-webdriver
通知
4
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
violent-webdriver
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
88d86c1d
编写于
8月 10, 2018
作者:
泰斯特Test
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add double click parameter of function v_click()
上级
294b856f
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
28 addition
and
8 deletion
+28
-8
setup.py
setup.py
+1
-1
violent_webdriver/Chrome.py
violent_webdriver/Chrome.py
+27
-7
未找到文件。
setup.py
浏览文件 @
88d86c1d
...
...
@@ -5,7 +5,7 @@ with open("README.md", "r") as fh:
setuptools
.
setup
(
name
=
"violent-webdriver"
,
version
=
"1.0.1
7
"
,
version
=
"1.0.1
8
"
,
author
=
"Yuyi Shao"
,
author_email
=
"523314409@qq.com"
,
description
=
"violent webdriver based on selenium"
,
...
...
violent_webdriver/Chrome.py
浏览文件 @
88d86c1d
...
...
@@ -6,6 +6,7 @@ import warnings
from
selenium.webdriver.remote.webdriver
import
WebDriver
as
RemoteWebDriver
from
selenium.webdriver.chrome.remote_connection
import
ChromeRemoteConnection
from
selenium.webdriver.chrome.service
import
Service
from
selenium.webdriver.common.action_chains
import
ActionChains
from
selenium.webdriver.chrome.options
import
Options
...
...
@@ -74,7 +75,7 @@ class violent_chromedriver(webdriver.Chrome):
raise
self
.
_is_remote
=
False
def
v_click
(
self
,
locate_rule
,
attempt_num
=
60
,
attempt_interval
=
0.5
):
def
v_click
(
self
,
locate_rule
,
attempt_num
=
60
,
attempt_interval
=
0.5
,
use_double_click
=
False
):
"""
Post-packaging the [click] function of selenium webdriver
...
...
@@ -86,6 +87,7 @@ class violent_chromedriver(webdriver.Chrome):
- attempt_num <int>- the num of click you want to attempt, default num is 60
- attempt_interval <int>- the time interval of each attempt in second, default interval is 0.5s
- locate_rule <dict> - the rule that use to locate the web element you want to operate
- use_double_click <boolean> - whether use double click
for single-locate strategy , support : [id] , [xpath] , [link text] [partial link text]
[name] , [tag name] , [class name] [css selector]
...
...
@@ -107,9 +109,15 @@ class violent_chromedriver(webdriver.Chrome):
for
i
in
range
(
0
,
attempt_num
):
try
:
if
self
.
use_mobile_emulation
:
TouchActions
(
self
).
tap
(
self
.
find_element
(
key
,
value
)).
perform
()
if
use_double_click
:
TouchActions
(
self
).
double_tap
(
self
.
find_element
(
key
,
value
)).
perform
()
else
:
TouchActions
(
self
).
tap
(
self
.
find_element
(
key
,
value
)).
perform
()
else
:
self
.
find_element
(
key
,
value
).
click
()
if
use_double_click
:
ActionChains
(
self
).
double_click
(
self
.
find_element
(
key
,
value
)).
perform
()
else
:
self
.
find_element
(
key
,
value
).
click
()
break
except
WebDriverException
:
time
.
sleep
(
attempt_interval
)
...
...
@@ -126,9 +134,15 @@ class violent_chromedriver(webdriver.Chrome):
for
element
in
elements
:
if
element
.
text
==
locate_rule
[
key_list
[
1
]]:
if
self
.
use_mobile_emulation
:
TouchActions
(
self
).
tap
(
element
).
perform
()
if
use_double_click
:
TouchActions
(
self
).
double_tap
(
element
).
perform
()
else
:
TouchActions
(
self
).
tap
(
element
).
perform
()
else
:
element
.
click
()
if
use_double_click
:
ActionChains
(
self
).
double_click
(
element
).
perform
()
else
:
element
.
click
()
i
+=
1
break
if
i
==
0
:
...
...
@@ -145,9 +159,15 @@ class violent_chromedriver(webdriver.Chrome):
for
element
in
elements
:
if
element
.
get_attribute
(
key_list
[
1
])
==
locate_rule
[
key_list
[
1
]]:
if
self
.
use_mobile_emulation
:
TouchActions
(
self
).
tap
(
element
).
perform
()
if
use_double_click
:
TouchActions
(
self
).
double_tap
(
element
).
perform
()
else
:
TouchActions
(
self
).
tap
(
element
).
perform
()
else
:
element
.
click
()
if
use_double_click
:
ActionChains
(
self
).
double_click
(
element
).
perform
()
else
:
element
.
click
()
i
+=
1
break
if
i
==
0
:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录