学习中的左强 2022-11-15 12:09 采纳率: 100%
浏览 25
已结题

document.querySelector单击后提交数据失败

跨框架用document.querySelector操控网页元素完成自动化处理客户信息,而客户信息在框架内处理,其中一项是选择下拉菜单性别,我用单击方法完成,代码如下:
document.querySelector('#selectEditSalesOpptProcessPopup > iframe').contentWindow.document.querySelector('#sexCd_listbox > li:nth-child(1)').click();//li:nth-child(1)为男,2为女
运行结果:undefined,但是已经执行成功.然后提交数据后性别栏是空值.
我尝试过使用change触发事件,但是结果一样.反复测试后我发现只有客户信息框架是初次打开,执行代码后提交都会失败,但是如果是第二次以上打开客户信息框架的,执行都能成功
我想要达到的结果:新增客户进来,初次打开框架下的客户信息框,执行代码能够成功选择性别并且成功提交数据

img

新增客户信息初次打开框架运行代码结果:

img

客户信息第二次打开框架运行代码结果:

img

这次提交成功,搞不懂了

  • 写回答

7条回答 默认 最新

  • Jackyin0720 2022-11-15 14:00
    关注

    尝试思路:
    解决方案:

    把获取元素的语句放在异步获取到数据,赋值给data中的key之后进行。同时需要给获取元素的语句加上setTimeout。因为setTimeout是宏任务,会在vue的render函数执行之后再执行。
    把获取元素的语句放到updated周期中执行。这种情况下每次视图更新之后都会执行一次获取元素的语句,如果不需要每次视图更新之后都执行,可以在mounted周期中,使用this.$once("hook: updated", function() {...}) ,让获取元素的语句只在updated阶段执行一次。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

问题事件

  • 系统已结题 11月30日
  • 已采纳回答 11月22日
  • 修改了问题 11月17日
  • 创建了问题 11月15日

悬赏问题

  • ¥15 对于知识的学以致用的解释
  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败