我一直在定义如下的Webview中获取DOM元素的空值:
man hostname
但是,当我从Webview的开发人员控制台中运行同一段代码时,我成功获取了元素。我在做什么错了?
这是我尝试的方法:
以下每个步骤都是由root@srv:~# hostname --all-ip-addresses
11.12.13.14 192.168.15.19
root@srv:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/void
inet 11.12.13.14/32 scope global venet0:0
inet 192.168.15.19/32 scope global venet0:1
事件直接或间接触发的。
1)从主进程运行:
<webview id="androidMessagesWebview" src="https://messages.android.com/" autosize preload="preload.js"></webview>
2)在渲染过程中运行:
did-finish-load
3)从preload.js内部运行
mainWindow.webContents.executeJavaScript(`
androidMessagesWebview.executeJavaScript(\`
console.log("Reached");
console.log(document.querySelector('[aria-label="New conversation"]'))
\`)
`);
1、2和3分别独立运行,并且都在androidMessagesWebview.openDevTools()控制台上提供了相同的输出:
androidMessagesWebview.executeJavaScript(`
console.log("Reached");
console.log(document.querySelector('[aria-label="New conversation"]'))
`);