Я пытаюсь реализовать динамическую систему пользовательских данных для своей среды автоматизации объектной модели страницы C#. Я пытаюсь создать систему JSON, в которой данные для входа в систему, такие как имя пользователя и пароль, могут передаваться из файла JSON. Я запускаю это на эмуляторе IOS. Проблема, с которой я столкнулся, заключается в том, что имя пользователя и пароль никогда не попадают в файл JSON, а поля имени пользователя и пароля никогда не заполняются. Это отлично работает, когда я использую строку или значение по умолчанию. Пожалуйста, помогите, если можете, я очень признателен.
У меня есть этот метод в моих глобальных методах, который должен десериализовать данные моего файла json:
Код: Выделить всё
public class UserCredentials
{
public string Username { get; set; }
public string Password { get; set; }
}
public class CredentialUtilities
{
private static readonly string ProfileFilePath = "FakePath";
public static UserCredentials CurrentCredentials { get; private set; } // Static property to hold credentials
public static UserCredentials LoadCredentials()
{
if (!File.Exists(ProfileFilePath))
{
Console.WriteLine("JSON file not found.");
return null;
}
string jsonString = File.ReadAllText(ProfileFilePath);
UserCredentials credentials = System.Text.Json.JsonSerializer.Deserialize(jsonString);
if (credentials == null)
{
Console.WriteLine("Failed to deserialize JSON data.");
return null;
}
CurrentCredentials = credentials; // Set the static property
return credentials;
}
public static void DisplayCredentials()
{
if (CurrentCredentials != null)
{
Console.WriteLine($"Username: {CurrentCredentials.Username}");
Console.WriteLine($"Password: {CurrentCredentials.Password}");
}
else
{
Console.WriteLine("No credentials to display.");
}
}
Код: Выделить всё
{
"Username": "john.doe",
"Password": "s3cr3t"
}
Код: Выделить всё
public bool LoginUseriOS()
{
// Load credentials from JSON file
UserCredentials credentials = CredentialUtilities.LoadCredentials();
bool step1Pass = false, step2Pass = false, step3Pass = false;
try
{
LogTest("Login Step 1: App loads and displays landing page, then clicks the 'Login' button. When the continue button appears, click 'Continue'");
Driver.FindElement(MobileBy.AccessibilityId(Login_PageObjects.loginButton)).Click();
Driver.FindElement(MobileBy.AccessibilityId(Login_PageObjects.continueButton)).Click();
PassStep();
step1Pass = true;
}
catch (Exception ex)
{
FailStep($"Unable to find sign in button on landing page or advance to B2C login page. Error: {ex.Message}");
}
try
{
LogTest("Login Step 2: Safari browser loads B2C login page, attempts to enter username, then password, then clicks 'Login'");
Driver.FindElement(MobileBy.AccessibilityId(Login_PageObjects.dismissKeyboard)).Click();
Driver.FindElement(MobileBy.AccessibilityId(Login_PageObjects.usernameTextBox)).SendKeys(credentials.Username);
Driver.FindElement(MobileBy.AccessibilityId(Login_PageObjects.dismissKeyboard)).Click();
Driver.FindElement(MobileBy.AccessibilityId(Login_PageObjects.passwordTextBox)).SendKeys(credentials.Password);
Driver.FindElement(MobileBy.AccessibilityId(Login_PageObjects.passwordTextBox)).SendKeys(Keys.Return);
PassStep();
step2Pass = true;
}
catch (Exception ex)
{
FailStep($"Unable to send credentials. Error: {ex.Message}");
}
Я ожидал, что значение будет передано из json, но в поля имени пользователя и пароля ничего не было введено. .
Подробнее здесь: https://stackoverflow.com/questions/784 ... sting-data
Мобильная версия