我不确定这是否是正确的问题,但我很确定我会问一个非常愚蠢的问题.我是开发人员,但对最新的加密技术一无所知.我在许多网站上看过,WhatsApp花了很多年才想出这种"技术",而且我们的信息和一切现在都是安全的.
我有几个问题一直困扰着我.
如果解密消息需要加密密钥,那么密钥如何转移到接收方?当然使用WhatsApp服务器?我们怎么知道他们没有让它解密聊天?仅仅因为我们相信他们?如果在我的手机上加密了一条消息,接收方需要知道加密密钥才能解密,他们如何获得该密钥?使用WhatsApp服务器?为什么WhatsApp不能保持这个密钥是如此困难?
如果我向我的一个朋友发送视频,上传需要一段时间,上传时会显示进度条..如果我将同一个视频转发给我的其他几个朋友,它会在一秒内立即发送.怎么样?它没有加密吗?如果没有再次加密,它怎么会被发送?
最后,WhatsApp网络如何运作?如果WhatsApp的网站可以显示我的所有消息(无论我如何登录),为什么服务器人都看不到它?他们怎么不能模仿我的登录并且能够看到我正在做的一切?我刚刚使用WhatsApp网络向我的一位朋友发送了一张图片,它被发送了,他看到了......一切都很好.在打开WhatsApp之前我关闭了我的WiFi,图像甚至没有下载!它甚至不在我的手机中..当我的手机中甚至不存在WhatsApp网络时,WhatsApp网站如何使用我的"手机"发送该图像?(注意:我的设置不允许立即下载图像).很显然,WhatsApp并没有和我刚刚发送的手机通话,因为它在服务器上.
有人可以帮我理解这个吗?
编辑:一个帮助我理解的页面的链接也足够了..如果它太长,你不必在这里写一切.虽然我已经在Google上搜索了相当长的一段时间.这个网站上也没有人问过这个问题.
Cypress 的visible匹配器根据多种因素将元素视为可见,但它没有考虑视口,因此滚动到屏幕外的元素仍被视为可见。
我需要测试指向页面锚点的链接是否正常运行。单击链接后,页面将滚动到具有在链接的 href 中定义的 id 的元素 ( example/#some-id)。
如何验证元素是否在视口内?
有没有人知道如何在角度e2e测试中模拟$ httpBackend?这个想法是在travis-ci上运行测试时存根XHR请求.我正在使用业力来代理我在travis上运行的rails应用程序中的资产和部分资源.我想在没有真正的DB查询的情况下进行验收测试.
这是我的业力配置文件的一部分:
...
files = [
MOCHA,
MOCHA_ADAPTER,
'spec/javascripts/support/angular-scenario.js',
ANGULAR_SCENARIO_ADAPTER,
'spec/javascripts/support/angular-mocks.js',
'spec/javascripts/e2e/**/*_spec.*'
];
...
proxies = {
'/app': 'http://localhost:3000/',
'/assets': 'http://localhost:3000/assets/'
};
...
Run Code Online (Sandbox Code Playgroud)
这是我的spec文件的一部分:
beforeEach(inject(function($injector){
browser().navigateTo('/app');
}));
it('should do smth', inject(function($rootScope, $injector){
input('<model name>').enter('smth');
//this is the point where I want to stub real http query
pause();
}));
Run Code Online (Sandbox Code Playgroud)
我试图通过$ injector接收$ httpBackend服务:
$injector.get('$httpBackend')
Run Code Online (Sandbox Code Playgroud)
但这不是在我的测试运行的iframe中使用的那个.
我做的下一次尝试是使用angular.scenario.dsl,这里是代码samle:
angular.scenario.dsl('mockHttpGet', function(){
return function(path, fakeResponse){
return this.addFutureAction("Mocking response", function($window, $document, done) {
// I have access to window and document instances
// from iframe where …Run Code Online (Sandbox Code Playgroud) mocking acceptance-testing end-to-end angularjs karma-runner
我正在尝试在数字海洋上运行Ubuntu服务器12.04.3的Droplet上建立端到端测试环境.
我最终想要实现的是我的jenkins(安装在一个Droplet上)能够运行我的端到端测试.现在,服务器是无头的,端到端测试需要通过浏览器运行(我使用量子器与带有chromedriver的selenium独立服务器).
我的问题是:如何在该机器上生成浏览器?我已经安装了xorg,如果我startx在服务器上运行,请注销ssh -X,我可以手动运行端到端测试(在本地计算机上弹出一个浏览器).但是我可以让它在没有它的情况下工作ssh -X,因为jenkins在同一个小滴上进行测试.好吧,我没有得到一个浏览器产卵.
注意:我知道我可能会遗漏一些非常简单的东西,因为我不完全理解配置和xorg.
非常感谢任何提示或完整的答案,这给了我一头白发.
编辑:经过一番挖掘后我觉得我的xorg有点不对劲,我猜X的目的是能够在远程机器(即我的本地机器)上生成一个窗口.而我所追求的更像虚拟帧缓冲区,如Xvfb ...
headless end-to-end selenium-webdriver protractor digital-ocean
无法理解为什么它返回一个对象而不是文本值,一些测试代码:
describe('columns swap', function () {
describe('location column ', function () {
it('should swap right', function () {
browser.sleep(10000);
var fColumn = element(by.xpath('(//*[@class="k-link"])[2]')).getText();
console.log(fColumn);
Run Code Online (Sandbox Code Playgroud)
控制台输出:
> columns swap
> location column { ptor_: { controlFlow: [Function],
> schedule: [Function],
> getSession: [Function],
> getCapabilities: [Function],
> quit: [Function],
> actions: [Function],
> executeScript: [Function],
> executeAsyncScript: [Function],
> call: [Function],
> wait: [Function],
> sleep: [Function],
> getWindowHandle: [Function],
> getAllWindowHandles: [Function],
> getPageSource: [Function],
> close: [Function],
> getCurrentUrl: …Run Code Online (Sandbox Code Playgroud) 当我执行 node elementexplorer.js http://127.0.0.1:8080/app/view1
我收到以下错误:
有一个webdriver错误:错误在等待Protractor与页面同步时出错:"root元素(正文)没有注入器.这可能意味着它不在ng-app中."
请告诉我如何提供rootelement选项.
我是ProtractorJS的新手.我想要做的是尝试获取禁用的输入元素的值.此输入元素绑定到模型.最初这个输入元素是空的; 然后在一些动作之后更新模型值(并因此显示在输入元素中).我需要获得这个价值,我该怎么做?
我的输入元素是:
<input class="form-control ng-pristine ng-valid" style="font-size: 11px;" disabled="disabled" type="text" ng-model="Promotion.PrometricID">
Run Code Online (Sandbox Code Playgroud)
我试图通过以下方式获取价值:
element(by.model("Promotion.PrometricID")).getAttribute('value');
Run Code Online (Sandbox Code Playgroud)
但每当我在控制台中写入值时,它都会给我"[object] [object]".
谁能告诉我如何在这个文本框或模型中找到价值?
javascript selenium end-to-end selenium-webdriver protractor
这是我的问题:我们希望通过网络发送大小为150,000字节的消息.有四个跳,每个跳长20km,运行速度为100 Mb/s.但是,在发送之前,我们将消息拆分为1500字节的数据包.消息的端到端延迟是什么?使用铜的光速= c = 2*10 ^ 8 m/s,并将你的答案四舍五入到最接近的整数毫秒.
我到目前为止所用的是48ms,我按以下方式计算:1500字节= 12,000位12,000位/(100x10 ^ 6)[100Mb/s] = 0.00012s 20km /(2*10 ^ 8)[光速]在这个等式中] = 1e-7加起来你每跳得到0.0001201 x 4跳= 0.0004804s - > 48ms四舍五入到最接近的整数.
显然这是不正确的,我无法弄清楚我的错误.我的在线课程没有任何帮助,所以我转向SO.如果有人能直接指出我,我会很感激帮助.
在阅读了有关 Web 安全的 Cypress文档以及何时禁用它之后,我决定我确实需要这样做。有没有办法只为一个特定的测试/测试套件禁用它?我使用的是3.4.1 版,并且正在设置此配置cypress.json- 因此它对所有测试都是全局的。
有没有一种方法可以仅针对一次测试禁用网络安全?谢谢!
我正在尝试使用 Cypress 和testing-library/cypress 检查 DOM 树中是否不存在元素。
如果我尝试cy.getByTestId("my-button").should("not.exist")测试失败,因为它找不到元素。
如果我cy.findByTestId("my-button").should("not.exist")这样做也会因为超时而失败。
cy.queryByTestId("my-button").should("not.exist")如果我执行以下任一操作,则测试确实有效
cy.get('[data-testid="my-button"]').should("not.exist")。
有人可以解释一下这4个有什么区别吗?
谢谢
end-to-end ×10
javascript ×4
protractor ×4
cypress ×3
testing ×3
angularjs ×2
android ×1
encryption ×1
headless ×1
ios ×1
karma-runner ×1
mocking ×1
networking ×1
packet ×1
promise ×1
selenium ×1
whatsapp ×1