Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
.Veneno.
wechaty
提交
d466c152
W
wechaty
项目概览
.Veneno.
/
wechaty
与 Fork 源项目一致
Fork自
wechaty / wechaty
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
W
wechaty
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d466c152
编写于
10月 18, 2017
作者:
Huan (李卓桓)
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
puppeteer does not support XPath, its a Selector. use a patch (fix
#636
)
上级
161adf3d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
28 addition
and
2 deletion
+28
-2
src/puppet-web/bridge.ts
src/puppet-web/bridge.ts
+28
-2
未找到文件。
src/puppet-web/bridge.ts
浏览文件 @
d466c152
...
...
@@ -638,9 +638,35 @@ export class Bridge extends EventEmitter {
public
async
clickSwitchAccount
():
Promise
<
boolean
>
{
log
.
verbose
(
'
PuppetWebBridge
'
,
'
clickSwitchAccount()
'
)
const
SELECTOR
=
`//div[contains(@class,'association') and contains(@class,'show')]/a[@ng-click='qrcodeLogin()']`
// https://github.com/GoogleChrome/puppeteer/issues/537#issuecomment-334918553
async
function
waitForXpath
(
page
:
Page
,
xpath
:
string
)
{
const
resultsHandle
=
await
(
page
as
any
).
evaluateHandle
(
xpathInner
=>
{
const
results
=
[]
as
any
const
query
=
document
.
evaluate
(
xpathInner
,
document
,
null
,
XPathResult
.
ORDERED_NODE_SNAPSHOT_TYPE
,
null
);
for
(
let
i
=
0
,
length
=
query
.
snapshotLength
;
i
<
length
;
++
i
)
{
results
.
push
(
query
.
snapshotItem
(
i
));
}
return
results
;
},
xpath
);
const
properties
=
await
resultsHandle
.
getProperties
();
const
result
=
[]
as
any
const
releasePromises
=
[]
as
any
for
(
const
property
of
properties
.
values
())
{
const
element
=
property
.
asElement
();
if
(
element
)
result
.
push
(
element
);
else
releasePromises
.
push
(
property
.
dispose
());
}
await
Promise
.
all
(
releasePromises
);
return
result
;
}
const
XPATH_SELECTOR
=
`//div[contains(@class,'association') and contains(@class,'show')]/a[@ng-click='qrcodeLogin()']`
// const DOM_
try
{
const
button
=
await
this
.
page
.
$
(
SELECTOR
)
// const button = await this.page.$(XPATH_SELECTOR)
const
[
button
]
=
await
waitForXpath
(
this
.
page
,
XPATH_SELECTOR
)
await
button
.
click
()
// const button = await this.driver.driver.findElement(By.xpath(
// "//div[contains(@class,'association') and contains(@class,'show')]/a[@ng-click='qrcodeLogin()']"))
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录