c# - 如何使用 selenium c# 管理基本身份验证登录?
问题描述
我正在为我正在实习的公司进行测试,但我不知道如何让脚本将我的凭据放在这部分,如果我进入页面(我自己,而不是 chromedriver)自动获取我电脑上登录的凭据,显然测试驱动程序不能这样做,这就是我收到警报的原因,我的问题是如何自动将凭据放在那里?现在我正在让线程休眠并手动输入凭据,但我知道这不是最佳方法,我已经尝试使用警报方法:
var alert = driver.SwitchTo().Alert();
alert.SetAuthenticationCredentials("user","password");
alert.Accept();
但我得到这个错误:
Message: OpenQA.Selenium.NoAlertPresentException : no such alert
(Session info: chrome=87.0.4280.141)
如果我等待,我会超时但没有任何反应,正如你所看到的,我正在使用 chrome,我读了几年来的一篇文章 chrome 无法管理警报,但我不知道这是否是今天的事情,我希望你们能帮助我。
解决方案
这不是警报,而是基本身份验证弹出窗口。
解决方案
您可以通过嵌入在 url 中的用户名和密码访问url,如下所示:
driver.Navigate().GoToUrl("http://<username>:<password>@website.com/");
作为在Basic Auth中登录的示例,您可以使用:
driver.Navigate().GoToUrl("http://admin:admin@the-internet.herokuapp.com/basic_auth");
参考
您可以在以下位置找到一些相关的详细讨论:
推荐阅读
- ruby-on-rails - 在 docker 的 ubuntu 映像中运行网络服务器
- python - 自定义用户注册问题(NOT NULL 约束失败:mainaccount_myuser.password)
- c++ - 如何将列表中的一系列元素移动到同一列表中元素的前面?
- javascript - 将项目添加到 Flatlist,React Native 时遇到问题
- c# - Xamarin 社区工具包 TouchEffect.Command 在 CollectionView 中不起作用
- java - JavaFX setAlwaysOnTop 在全屏阶段
- java - 休眠异常未传播到部署在 JBoss 7.3 中的应用程序
- r - 将光栅图像裁剪为指定的经度和纬度?
- batch-file - 如何使用批处理在文本文件中的某一行之后添加多行
- html - 其他文件夹中文件的相对路径