- 主题:新型的 js 框架不好做 UI 自动化啊
比如有个 <form><input id="xxx" value=""/></form> 是使用 reactjs 绘制出来的。
以前,如果我们想做自动化测试工具,只要简单改动 $("#xxx").value="v" 再提交 form 就行了。现在改动这个 value 并没有用。因为 reactjs 在刷新 dom 的时候,内部值并没有变化,马上又会变成 "",提交的值不对。
有时候调用 dispatchEvent(new Event("change")) 好像也没用。
有什么好的办法解决这种问题吗?
--
FROM 110.81.42.*
因为成熟免费的那些难用啊。我做的业务领域,有些小东东就得自己轮。市面上那些没有考虑我的业务场景。
【 在 eGust (十年) 的大作中提到: 】
: 有成熟的免费开源测试产品不用,啥都自己轮?
--
FROM 112.47.122.*
我是看着 react dom 的代码写的。可是貌似没成功。input 和 change 两种事件都试过貌似不行。我再研究一下。
【 在 shaolin (我的大小宝贝儿...) 的大作中提到: 】
: React的onChange监听的是oninput
: const evt = document.createEvent('HTMLEvents')
: evt.initEvent('input', true, true)
: ...................
--
FROM 112.47.122.*
你不懂啊。。解决另外一个业务问题是主要的。而这个问题只是刚好碰到的小细节。
【 在 eGust (十年) 的大作中提到: 】
: 这里面提到的从 selenium 这种老掉牙的,到过时的 cypress,再到比较新的 pupputeer,没一个存在你提出的弱智问题。
: 行业里经过实战考验的框架难用,连这种弱智问题都解决不了反倒好用,你哪来的自信呢?
--
FROM 112.47.122.*
问题是运行环境里面没有 react,也不方便往里面注入 react,是比较纯的 js 环境。
【 在 pigtracer (知心哥哥) 的大作中提到: 】
: import React from 'react';
: import { shallow } from 'enzyme';
: import Button from './Button';
: ...................
--
FROM 110.81.42.*
前端社区可能是因为用 mac 用得太多。所以整个社区都被果子文化给洗脑了。
技术社区现在都不讨论一个技术到底是什么原理,而是充斥着你们这种论调:既然主流技术不适用这个应用场景,那这个场景一定是没有意义的。跟果粉以前一直在证明鼠标只有一个按键就够了差不多。
生生把自己封闭在自己一个小圈子里面。
【 在 pangwa (学门手艺,混口饭吃.) 的大作中提到: 】
: 哇靠, cypress已经过时了啊~~ 前端发展真是快,
: 赞同, 很多东西自己轮除了浪费精力外基本没啥好处... 除了多踩踩坑外, 没啥了, 另外多看看相关框架的设计文档也能学到不少, 比闭门造车强多了.
--
修改:hgoldfish FROM 110.81.42.*
FROM 110.81.42.*
我改的那个只是名字带 Qt,其实跟 qt 压根没关系好不好,里面根本不是 qt 的技术,那是 python 的。用一个简单的名字就迷惑了你?
js 的协程原原本本抄的 python,所以我再把 python 的内容抄过来一点,很合理的吧。标准抄 95%,我再抄 1% 而已啊。我用的协程可是 es2017 语言标准的,又不是我发明的。只是跟你们用 react 的方式不一样你们就把我划成异端了啊。
说起这事,现在网上 vue 社区和 react 社区吵得不可开交,互认异端,党同异伐。好笑!
其实我根本不干你们那种界面搬砖的活,所以你说的那些技术在我这里无用啊。比如这次我是在设计一个特定场景的浏览器。。你跟我这种设计浏览器的说你要用 react 要上 ts,莫不是笑话?
【 在 eGust (十年) 的大作中提到: 】
: 标 题: Re: 新型的 js 框架不好做 UI 自动化啊
: 发信站: 水木社区 (Fri May 28 15:52:37 2021), 站内
:
: 我觉得你还是多把用来说别人的东西用在自己身上比较合适
: 因为你不用某个东西,所以那个东西就没意义
:
: js 自己的东西不用,非得改成 qt 的样子,制造出一堆问题然后结论是 js 语言渣
: 你自己只用 intelij 的东西,所以任何不是他家的 editor/ide 的技术都没意义
: 本身就需要用 js 来做测试/自动化,不知道哪来的自信觉得自己的轮子成熟的方案更好用,于是跟 qt 一样创造出来一堆对别人来说根本不存在的问题
:
: 不同的语言、不同的技术都是工具而已,把自己局限在小圈子里面的是你,不知道怎样利用现成的工具去达成自己的需求。英文有个谚语,自己会用锤子所以看啥都像钉子。你就是只会 qt,所以用什么东西都非得把东西先改造成 qt 的样子,这样才能用上你会的锤子
:
: 【 在 hgoldfish (老鱼) 的大作中提到: 】
: : 前端社区可能是因为用 mac 用得太多。所以整个社区都被果子文化给洗脑了。
: : 技术社区现在都不讨论一个技术到底是什么原理,而是充斥着你们这种论调:既然主流技术适用这个应用场景,那这个场景一定是没有意义的。跟果粉以前一直在证明鼠标只有一个按键就够了差不多。
: : 生生把自己封闭在自己一个小圈子里面。
: : ...................
:
: --
:
: ※ 来源:·水木社区 newsmth.net·[FROM: 122.59.58.*]
--
FROM 110.81.42.*
我前面不是说了吗?我的场景里面是特定的 JS 环境。你们搞的那些东东在这种环境里面一个都跑不起来。
【 在 pangwa (学门手艺,混口饭吃.) 的大作中提到: 】
: 至于说技术原理, 个人认为我对这个东西的技术原理还是略懂一些的, 但从工作的角度来讲, 无非是用合适的技术来解决工作的问题, 不觉得为了搞明白技术原理而搞一个轮子去某个问题更好哇, 对吧.
: 从你这个问题来讲, 请问你有没有用过前面提到的几个工具, 然后发现它们不适合或者解决不了你的问题? 从你的提问来讲, 你要解决的是一个非常简单的问题, 这几个工具都已经解决的很好了, 那么有什么必要一定要自己轮一个呢?
--
FROM 110.81.42.*
我们没有页面呢,纯 JS 的,只能访问到 dom,不能访问到页面的 js.
我需要去兼容页面,所以才吐槽这种事。今天 react,明天 vue,哪天再出来个框架监听那些事件。。我又得想办法了。
【 在 pangwa (学门手艺,混口饭吃.) 的大作中提到: 】
: 1. 你前面并没有提 特定的js环境, 对吧
: 2. 如果针对你们特定的js环境测试网页, 我倒觉得可以mock一些方法, 试试让你们的页面可以在网页里渲染起来, 之前我们的基于electron的一个程序, 想过用类似的方案搞自动化测试(不过后来没做)
--
FROM 110.81.42.*
哈哈。。我就说你自己套小圈里吧。。居然说 yield/async 在 js 社区不主流。
眼界放开一点。现在 async/await 这一套在各种语言里面都是主流了。在 rust, python 社区里面都在大力普及了。es2017 到现在也四五年了。
说实话,js 社区特别奇怪。如此摒弃自己吃饭的工具,js 扔了搞 ts 真是太奇葩了。
【 在 eGust (十年) 的大作中提到: 】
所以我说迷之自信呢。比如只见过 python 有 generator/yield,就觉得 js 抄的是 py
实际上基于 event loop 机制,js 天生就是异步的。不论是 callback,promise 也好,还是 generator/yield,都是基于同一机制实现的。generator/yield 除了少数 pattern 以外,在 js 世界里根本就不主流。然后因为自己懂这个锤子,就觉得 js 世界错了,你们根本就没抄对。
同样,不管什么前端技术,总归是要走浏览器的。所以所谓自动化,根本就是一个操作浏览器的黑箱,跟用了什么技术一丁点关系都没有。能得出新框架对自动化部友好的结论也是醉了,真是完全不懂什么逻辑。
从早期的 selenium,到 cypress,再到现在的 puppeteer/playwright,操作浏览器这件事情是越来越方便、简洁。
前端没技术含量,自己水平不知道高到哪里去了,那好歹别问这么弱的问题,还否定连古代的框架里根本没人在意的事情啊
【 在 pangwa (学门手艺,混口饭吃.) 的大作中提到: 】
: 我又去翻了下原文, 感觉老鱼某种特别的优越感啊... 不过说回来, 前端的技术含量也不低, 虽然我不专业搞前端. 时代变了.
--
修改:hgoldfish FROM 110.81.42.*
FROM 110.81.42.*