如何解决有没有一种方法可以将用于身份验证的JWT令牌传递到C#Asp.net Core中的Selenium WebDriver中?
我需要一种在WebAPI自动化上对自己进行身份验证的方法。我已经提取了承载令牌并将json传递到.net对象中,如何在打开JWT / Bearer Token的同时传递所需的标头并将其注入ChromeDriver会话中,以便当我的应用导航至https:// localhost时: 5000 /登录,它应自动重定向到-> https:// localhost:5000 / Dashboard。
class Program
{
//private static IWebDriver driver;
// ******->Selenium Specific Code<-******
// Instantiate the Chrome Driver
var driver = new ChromeDriver("/usr/local/bin/");
static IJavaScriptExecutor jsDriver = driver as IJavaScriptExecutor;
public static string setItemInLocalStorage(string item,string value)
{
var js = ((IJavaScriptExecutor)driver).ExecuteScript(String.Format(
"window.localStorage.setItem('userDetails','" + value + "');"));
return "";
}
//Method to Authenticate & GET Bearer Token from API.
public static async void GetAllWorkshopData(int WorkshopId)
{
UserAuth ua = new UserAuth();
ua.EmailAddress = "example@mail.com";
ua.Password = "Strongest!!!Pwd";
ua.WorkshopId = WorkshopId;
using (var client = new HttpClient())
{
var uri = "https://localhost:5001/api/userauth/Login";
string json = JsonConvert.SerializeObject(ua);
StringContent content = new StringContent(json,Encoding.UTF8,"application/json");
var res = await client.PostAsync(uri,content);
string datar = await res.Content.ReadAsstringAsync();
Example details = JsonConvert.DeserializeObject<Example>(datar);
// Navigate to the Endpoint
///here inject basic-auth token before selenium opens browser
driver.Navigate().GoToUrl("http://localhost:5000/Login");
setItemInLocalStorage("",datar);
driver.Navigate().GoToUrl("http://localhost:5000/Dashboard");
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。