gpt4 book ai didi

JavaScript : injecting ID attribute to an <input> tag by XPATH

转载 作者:行者123 更新时间:2023-11-28 18:13:24 25 4
gpt4 key购买 nike

我正在尝试使用selenium实现自动化,问题是标签没有ID,所以我使用xpath和JS找到控件,如下所示:

document.evaluate('/html/body/header[2]/div[2]/div/div[1]/div[1]/div/div/div/form/fieldset/div[1]/输入', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue

这是 chrome 控制台的响应:

<input> type="file" data-autosubmitoff="true" accept=".xls,.csv,.xlsx" name="File" class="hidden"></input>

这意味着它通过 xpath 找到了我的控制,现在我想注入(inject)一个 ID,以便我可以从 selenium 引用它。

我尝试这样做:

document.evaluate('/html/body/header[2]/div[2]/div/div[1]/div[1]/div/div/div/form/fieldset/div[1]/input', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.innerHTML='input id="UploadedFileFilter" type="file" data-autosubmitoff="true" accept=".xls,.csv,.xlsx" name="File" class="hidden">'

基本上用其中的 ID 重写整个标签,控制台会相应地响应以下答案:

input id="UploadedFileFilter" type="file" data-autosubmitoff="true" accept=".xls,.csv,.xlsx" name="File" class="hidden">"

完美!但是当我查看 DOM 时,输入标签仍然是旧的标签,我错了什么?

谢谢。

最佳答案

不要直接编辑 HTML,而是尝试像这样设置 id 值:

var path = '/html/body/header[2]/div[2]/div/div[1]/div[1]/div/div/div/form/fieldset/div[1]/input';
var element = document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
element.id = 'UploadedFileFilter';

还值得注意的是,innerHTML 是元素中包含的 HTML。要编辑元素本身的 HTML,您可以使用 outerHTML

关于JavaScript : injecting ID attribute to an &lt;input&gt; tag by XPATH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41170494/

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