1
resposta

Acessar o firefox com outro usuário

Olá, A aplicação que quero acessar faz login automático, com base no usuário logado no pc. Porém eu preciso fazer o teste com outros usuários. Por exemplo, manualmente eu faço da seguinte forma: aperto shift + botao direito do mouse, seleciono Executar Como Usuario Diferente, coloco o usuário e senha que preciso testar. Ao acessar a aplicação ele já identifica esse usuário. Tem como eu fazer algo parecido ao instanciar o FirefoxDriver()?

1 resposta

Fala Glayson, tudo bem?

Em vez de instanciar as implementações reais, como o FirefoxDriver, você precisa instanciar um RemoteWebDriver. Ao instanciar o RemoteWebDriver, você pode usar o objeto DesiredCapabilities para determinar qual máquina (e, portanto, qual usuário) o Selenium escolherá para executar o navegador. Por exemplo:

public IWebDriver CreateNewBrowserFor(string Who)
{
    //Decide which of Selenium nodes we want to connect to 
    string CapabilitiesOfTargetUser;
    if(Who.Equals("user1"))
    {
        //We need to control a browser for user1 on his node
        CapabilitiesOfTargetUser = "platform=Mac;browserName=firefox";
    }
    else if(Who.Equals("me"))
    {
        //We need to control a browser for me on my node
        CapabilitiesOfTargetUser = "platform=WINDOWS";
    }
    else
    {
        throw new ArgumentException();
    }

    //Create a Selenium DesiredCapabilities object that contains our choosen capabilities
    Dictionary<string, object> RequestedCapabilities = new Dictionary<string, object> ();
    string[] CapabilitiesArray = CapabilitiesOfTargetUser.Split(';');
    foreach(string KeyValuePair in CapabilitiesArray)
    {
        string key = KeyValuePair.Split('=').First().Trim();
        string value = KeyValuePair.Split('=').Last().Trim();
        RequestedCapabilities[key] = value;
    }
    DesiredCapabilities Capabilities = new DesiredCapabilities(RequestedCapabilities);

    //Create the RemoteWebDriver. Selenium's hub will ensure that this RemoteWebDriver is
    //actually controlling a new browser on the correct machine
    return  new RemoteWebDriver
    (
         new Uri("http://localhost:4444/wd/hub")
       , Capabilities
       , new TimeSpan(0, 0, 50)
    );
}

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software