- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 OCLIF 开发 CLI .在其中一个命令中,我需要在网页上模拟几次点击(为此使用 WebdriverIO framework)。在您能够到达所需页面之前,会重定向到带有登录提示的页面。当我使用与警报相关的 WebdriverIO 方法时,例如 browser.getAlertText()
, browser.sendAlertText()
或 browser.acceptAlert
, 我总是得到错误 no such alert
.
作为替代方案,我尝试在显示登录提示的页面上获取 URL。使用 URL,我想做类似 browser.url(https://<username>:<password>@<url>)
的事情来规避提示。然而,browser.url()
返回 chrome-error://chromewebdata/
当我在该页面上时作为 URL。我猜是因为焦点在提示上并且没有 URL。在我登陆该页面之前,我也不知道 URL。重定向时,包含 token 的查询字符串参数被添加到我需要的 URL。
提示截图:
是否可以使用 WebdriverIO 处理这种情况?如果是这样,怎么做到的?
最佳答案
您走在正确的轨道上,可能需要进行一些微调才能使其正常工作。
首先,关于 chrome-error://chromewebdata
错误,引用 Chrome 文档:
If you see errors with a location like
chrome-error://chromewebdata/
in the error stack, these errors are not from the extension or from your app - they are usually a sign that Chrome was not able to load your app.When you see these errors, first check whether Chrome was able to load your app. Does Chrome say "This site can't be reached" or something similar? You must start your own server to run your app. Double-check that your server is running, and that the url and port are configured correctly.
很多词总结起来就是:Chrome 无法加载您在 browser.url()
命令中使用的 URL。
我自己尝试了 The Internet - Basic Auth页。它就像一个魅力。
it('Bypass HTTP basic auth', () => {
browser.url('https://admin:admin@the-internet.herokuapp.com/basic_auth');
browser.waitForReadyState('complete');
const banner = $('div.example p').getText().trim();
expect(banner).to.equal('Congratulations! You must have the proper credentials.');
});
我要做的是手动执行每个步骤,尝试在您使用的脚本中模拟相同的流程。从历史上我可以告诉你,我处理了一些 HTTP 网络应用程序,这些应用程序在发出基本身份验证 browser.url()
调用后需要刷新。
解决此问题的另一种方法是使用一些自定义浏览器配置文件 (Firefox | Chrome)。我知道我在 SO 的某个地方写了一个教程,但我懒得去找它。我引用了类似的帖子 here .
简而言之,在隐身窗口中手动完成基本身份验证流程(使用凭据登录)(隔离配置)。在该 session 的另一个选项卡中打开 chrome://version/
并存储 Profile Path 的内容。该文件夹将保留您的所有 session 并保留 cookie 和其他浏览器数据。
最后,在您的 currentCapabilities
中,通过 '--user-data-dir=/path/to/更新特定于浏览器的选项以使用自定义配置文件启动 session 你的/自定义/个人资料
。它应该看起来像这样:
'goog:chromeOptions': {
args: [
'--user-data-dir=/Users/iamdanchiv/Desktop/scoped_dir18256_17319',
],
}
祝你好运!
关于node.js - 如何使用 Webdriver IO 填充登录提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62298883/
我正在尝试为我的用户提供使用 Google 或 Facebook 登录的选项。到目前为止,我找到了一个实现 Google 登录流程的示例,但如果我可以在同一 Activity 中实现类似的 Faceb
我有一个网页,它对用户是否登录很敏感。我使用的是 Google 登录 Javascript SDK。当用户到达此页面时,我想显示一个插页式广告(“正在加载...”),然后 1)如果用户已登录则呈现页面
我用 digitalocean 创建了一个 droplet,并使用 apt install mariadb-server 命令安装了 mariadb。现在我想使用 php 连接到我的服务器,我使用这个
这个问题在这里已经有了答案: Inno Setup - Signing fails with "Sign Tool failed with exit code 0x1" (2 个回答) 3年前关闭。
我正在尝试使用他们的新 API 实现 google 登录:https://developers.google.com/identity/sign-in/web/ 登录和注销工作正常。我的问题是我不知道
我的应用程序具有谷歌登录、Facebook 登录和 braintree 集成。 我已将以下代码放入 appdelegate.swift 中: func application(_ applicatio
我有一个 Flask 应用程序,最近在我的登录/退出表单中实现了 Flask-Login: @account.route('/sign-in', methods=['POST', 'GET']) de
friend 们,我是初学者级别的 ios swift 学习者。我一直在尝试在我的试用应用程序中进行谷歌登录。根据来自谷歌开发人员和其他教程的资源,我成功地使用 UIView 进行了登录。然后我试图在
我正在使用 Ionic 在 Codeigniter/Ion_Auth/codeigniter-restclient 之上构建登录系统,当我尝试从“ionic 服务器”登录时,登录可以正常工作,但对 L
在 Docker 文件中我有这个 FROM ubuntu RUN apt update && apt -y upgrade RUN apt install -y sudo # Setup ops us
对于 Java 开发,我使用 Slf4j 和 Logback。 Logger logger = LoggerFactory.getLogger(HelloWorld.class); logger.de
在 Scala 应用程序中进行日志记录的好方法是什么?与语言哲学一致的东西,不会使代码困惑,并且维护成本低且不引人注目。以下是基本要求列表: 简单 不会使代码困惑。 Scala 以其简洁而著称。我不希
我正在尝试将我的登录名转换为 Retrofit2 我的旧 LoginActivity: public class LoginActivity extends Activity { private st
我正在尝试让 google+ 登录在 android 上运行。我的问题是,每当我使用 eclipse 运行它时,google 开发站点上提供的示例都能完美运行。当我签署 apk 并在我的设备上手动安装
这个问题已经有答案了: JS Simple but Safe Login? [closed] (1 个回答) 已关闭 6 年前。 我正在尝试使用 JavaScript 创建登录页面。它实际上只是一个带
其他章节请看: react 高效高质量搭建后台系统 系列 登录 本篇将完成 登录模块 。效果和 spug 相同: 需求 如下:
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 1 年前。
我在使用 ReactJs 中的 facebook-login 组件时遇到问题,代码与文档中的完全一样,但仍然无法正常工作。你能帮我找出我做错了什么吗? import React, { Componen
我有一个项目,其中包含许多具有自己的日志记录的“工具”类。这些日志文件是在应用程序启动时创建的,但在使用之前一直为空。 是否可以告诉logback在启动时不应该创建空文件?但是仅在使用它们时? 不知何
我正在创建一个需要用户授权才能访问某些功能的网站。我目前正在研究用户如何创建帐户以及如何利用 session 来授权他们的登录。用户信息存储在名为 user 的 MySQL 表中,其中可能包括用户名和
我是一名优秀的程序员,十分优秀!