Javascript,js,怎么滚动到XPath元素位置 并且可微调? 2 js怎么用XPath更新输入框的值? 3, 网页悬浮图标怎么点?

你好,我先自我介绍下需求,我是做电商运营的,不会JS的代码, 这个太复杂了,我会XPath 正则表达式一些。配合一些rpa软件, 主要用来爬取数据 和 自动化办公。所以问几个js简单的技术问题,能直接拿过来 套版就可以用 ,并且能有备注参数信息 就最好了。

这是我找到的代码,可以用, 但是我还想基于此代码进行微调整。 比如网页向上滚动300像素点,或者是 网页向下滚动200像素点, 不知道怎么套。

以豆瓣网址为例子:
https://www.douban.com/

document.evaluate('//*[@id="anony-group"]/div/div[1]/h2/a', document).iterateNext().scrollIntoView();

img

img


另外一个问题

第二个问题:也是关于 JS
我在网上找到一个xpath:的 更新元素值,但是我这段代码 只支持 完整的 XPath路径, 不支持 //*模糊类型的XPath。是否能修正下? 或者是直接重新编辑一个? 简单的说就是 用js 来更新 输入框值 ,有时候一些输入框用常规方法无法更新,下面的就可以。可以用 https://s.taobao.com/ 输入框试试

$$//.js 
//封装xpath
function getElementByXpath(xpath){
 var element = document.evaluate(xpath,document).iterateNext();
 return element;
}

var casess=getElementByXpath(" 这里放 XPath 模糊的路径//*[@id="q"] 但是测试失败,需要完整的XPath才行");

 
casess.value="{这里放 输入框更新值}";
 
  var event = document.createEvent('HTMLEvents');
  event.initEvent("input", true, true);
  event.eventType = 'message';
  casess.dispatchEvent(event);


3,第三个问题:网页 js 怎么强制点击 XPath 路径? 让其弹出对话框?

img

我试过代码:js鼠标点击 无效,但是这个 网页是属于对企业公开的,我也不知道怎么给代码之类的,所以打包网页 在下面链接可以看看,看看是否能有帮助?

https://www.jianguoyun.com/p/DUjk344Qo9yPBhiAgf8EIAA


1window.scroll(0,document.evaluate('//*[@id="anony-group"]/div/div[1]/h2/a', document).iterateNext().offsetTop - 100) // - 100 处为上下浮动的坐标

2、 直接使用 querySelector 加 css 选择器就可以,不需要按 xpath 来设置,如果一定要用 xpath 的话,留言,我再研究一下
document.querySelector('#q').value = 'test'

3、 同样可以用 querySelector 完成,本身支持 js 所有事件触发
document.querySelector('#q').value = '笔记本电脑';document.querySelector('.btn-search').click()

基于最新版ChatGPT4的回答,望采纳!!!有其他问题也可以询问我哦、”(最新版更智能,功能更加强大)

你好!我可以帮你解答这些问题。

  1. 滚动到XPath元素位置并微调

你可以使用window.scrollBy(x-coord, y-coord)方法来实现页面的滚动。其中x-coord和y-coord分别表示页面在水平和垂直方向上滚动的像素数。在你的代码中,可以这样微调页面滚动:

// 向上滚动300像素
window.scrollBy(0, -300);

// 向下滚动200像素
window.scrollBy(0, 200);
  1. 使用XPath更新输入框的值

你可以将getElementByXpath方法中的document参数改为要更新的输入框所在的父级元素,然后使用querySelector方法来查找输入框。这样,你就可以使用模糊的XPath来更新输入框的值。例如:

function getElementByXpath(xpath, parent) {
  var element = parent.evaluate(xpath, parent, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
  return element;
}

var parent = document.querySelector('body'); // 修改为要更新的输入框所在的父级元素
var casess = getElementByXpath('//*[@id="q"]', parent);
casess.value = "新的输入框值";

var event = document.createEvent('HTMLEvents');
event.initEvent("input", true, true);
event.eventType = 'message';
casess.dispatchEvent(event);
  1. 点击XPath路径元素弹出对话框

你可以使用dispatchEvent方法来模拟鼠标点击事件,从而实现弹出对话框的效果。例如:

var element = document.evaluate('//*[text()="登录"]', document).iterateNext();
element.dispatchEvent(new MouseEvent('click', {
  bubbles: true,
  cancelable: true,
  view: window
}));

请注意,这可能会与网站的安全性设置冲突,导致无法正常工作。

希望这些解答对你有所帮助!