躯壳里的战鸣 发表于 2023-11-14 14:43:32

如何定位最后一个文本框

开始时只有一个文本框
xpath1:/html/body/div/div/section/section/main/div/div/div/div/div/div/div/div/input
输入完成后,按回车会出现第二个文本框
xpath2:/html/body/div/div/section/section/main/div/div/div/div/div/div/div/div/input
...........
依次类推
第n个文本框
xpathn:/html/body/div/div/section/section/main/div/div/div/div/div/div/div/div/input

使用的是document.evaluate('xpath', document).iterateNext()来定位元素,但是如何定位新生成的文本框呢,即定位n值最大的。求解答,谢谢

cxxjackie 发表于 2023-11-14 22:20:17

div
https://www.w3school.com.cn/xpath/xpath_syntax.asp

躯壳里的战鸣 发表于 2023-11-15 14:35:58

cxxjackie 发表于 2023-11-14 22:20
div
https://www.w3school.com.cn/xpath/xpath_syntax.asp

好的,谢谢大佬

躯壳里的战鸣 发表于 2023-11-18 12:07:24

cxxjackie 发表于 2023-11-14 22:20
div
https://www.w3school.com.cn/xpath/xpath_syntax.asp

你好,last需要定义吗,直接用会弹出错误
ReferenceError: last is not defined

cxxjackie 发表于 2023-11-19 22:11:44

躯壳里的战鸣 发表于 2023-11-18 12:07
你好,last需要定义吗,直接用会弹出错误
ReferenceError: last is not defined

不用啊,直接写就行,你是不是哪里理解错了:
document.evaluate('/html/body/div/div/section/section/main/div/div/div/div/div/div/div/div/input', document).iterateNext()

躯壳里的战鸣 发表于 2023-11-20 22:04:53

cxxjackie 发表于 2023-11-19 22:11
不用啊,直接写就行,你是不是哪里理解错了:

大佬,我写的代码如下,实现的功能是当键盘按下s时,光标聚集到最后一个文本框,但是检查后提示Uncaught TypeError: can't access property "focus", b is null,大佬看下是哪里写错了吗
代码:document.onkeyup = function(e) {
var b = document.evaluate('/html/body/div/div/section/section/main/div/div/div/div/div/div/div/div/input', document).iterateNext();
var event = e || window.event;
var key = event.which || event.keyCode || event.charCode;
if (key == 83) {
    b.focus();
}
};

cxxjackie 发表于 2023-11-20 22:17:23

躯壳里的战鸣 发表于 2023-11-20 22:04
大佬,我写的代码如下,实现的功能是当键盘按下s时,光标聚集到最后一个文本框,但是检查后提示Uncaught...

应该是xpath有错误,这个没有页面我也不知道错哪了,给个链接或者你自己再检查下。另外你这种需求应该没有使用xpath的必要,css选择器也能完成定位,建议换一下,xpath不仅写起来麻烦,搜索效率也更低。

躯壳里的战鸣 发表于 2023-11-20 22:44:24

cxxjackie 发表于 2023-11-20 22:17
应该是xpath有错误,这个没有页面我也不知道错哪了,给个链接或者你自己再检查下。另外你这种需求应该没 ...

大佬,那个css选择器是通过document.querySelectorAll函数来定位的吗

cxxjackie 发表于 2023-11-21 22:57:46

躯壳里的战鸣 发表于 2023-11-20 22:44
大佬,那个css选择器是通过document.querySelectorAll函数来定位的吗

是的,querySelector和querySelectorAll,不会写的话参考下这个:
https://bbs.tampermonkey.net.cn/thread-1821-1-1.html

躯壳里的战鸣 发表于 2023-11-22 12:12:43

cxxjackie 发表于 2023-11-21 22:57
是的,querySelector和querySelectorAll,不会写的话参考下这个:
https://bbs.tampermonkey.net.cn/thre ...

嗯嗯,已经解决了,谢谢大佬。但是有出现了一个问题,当一个弹窗出现和消失后,比如打印预览,回到网页后脚本就不起作用了,必须点击下网页才行。大佬有解决方法吗
页: [1] 2
查看完整版本: 如何定位最后一个文本框