gpt4 book ai didi

javascript - 无法访问网站上的元素

转载 作者:行者123 更新时间:2023-11-27 23:17:01 25 4
gpt4 key购买 nike

我一直在处理一项自动化任务,但遇到了障碍。该网站包含一个我想单击但无法访问的元素。

所以这是按钮的 HTML:

<div style="transform: translateX(1120px) translateY(0px); position: fixed; left: 0px;" title="Download selected item" tabindex="1" aria-disabled="false" role="button" class="cw-button download-button p2-toolbar-button" id="bu"><span class="title"></span></div>

它有各种类,但 download-button 类是它独有的。

现在当我在控制台中执行 document.getElementsByClassName("download-button") 时,它返回一个空数组而不是返回元素。

这里有几张截图为证:

enter image description here

另外如您所见,我尝试向元素添加 id 并尝试使用 getElementById 但即使那样也不起作用!

注意:我仅在页面完全加载后才在控制台中运行命令。

那么我该如何访问这些元素呢?

最佳答案

可以安全地假设此按钮位于 iframe 中的其他页面(即子页面)上。首先你的情况必须满足Same Origin Policy要求:

父页面(承载 iframe 的页面)和子页面(iframe 内的页面)必须具有相同的:

  • Protocol: either http:// or https://||| https://
  • Sub-domain: www, app, mail, s3... ||| https://www.
  • Domain: amazonaws.com, google.com ||| https://www.google.com
  • Port: 8080, 443, 21, *........................||| https://www.google.com:80

`* 端口仅在指定时才需要

如果...

...you have both pages with matching protocol, sub-domain, and domain you can access the iframe...

如果不是...

...then you'll at least need access to the child page...

如果不是...

...you have no business trying to tamper with a website that you do not have the proper credentials to.

以下代码段演示了如何从父页面访问子页面的 DOM。 SO 具有阻止正常 iframe 功能的安全策略。要查看工作示例,请参阅此 PLUNKER代码段和 Plunker 中对详细信息进行了评论。

片段

<!DOCTYPE html>
<html>

<head>

</head>

<body>
<h1>Parent Page</h1>
<button style='display:block;'>Target Button in iFrame</button>
<iframe src='child.html' width='350'></iframe>
<script>
/* Reference button
|| register click event on button
|| and call the function targetButton
*/
document.querySelector('button').addEventListener('click', targetButton, false);

function targetButton(e) {
// Reference the iframe
var iFrm = document.querySelector('iframe');
// Reference the document INSIDE the iframe
var iDoc = iFrm.contentWindow.document;
// Reference the button INSIDE the iframe's document
var iBtn = iDoc.querySelector('.dl-btn');
// Do whatever you want to iBtn
iBtn.style.color = '#000000';
iBtn.style.backgroundColor = '#FFCC22';
}
</script>
</body>

</html>

关于javascript - 无法访问网站上的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42592324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com