Nachdem ich Ihre Frage gelesen habe, glaube ich, dass Sie Ihr Problem falsch angehen. Da ich nicht sagen kann, um welche Art von Authentifizierung es sich in Ihrem Browser handelt, kann ich Ihnen ein Formular und HTTP 401 zeigen, die wahrscheinlich die allgemeinen Szenarien abdecken. Wenn Sie ein anderes Beispiel benötigen, lassen Sie es uns wissen, wenn Sie sich anders authentifizieren möchten.
Wenn ich Ihre Anfrage falsch gelesen habe und Sie tatsächlich auf eine manuell gestartete Instanz eines Browsers zugreifen möchten, die nicht standardmäßig bereitgestellt wird, müssen Sie wirklich kreativ werden. Unabhängig davon wird diese Frage beantwortet here.
Jedoch, soweit meine Empfehlung geht, würde ich sehr empfehlen, dass Sie dieses vb-Skript/manuellen Browser loswerden, wenn möglich. Wenn Sie sich über Ihren Browser authentifizieren können, können Sie dies über Selen tun. Hier sind einige Beispiele:
Note, this is a good guide on how to use the InternetExplorerDriver
Szenario 1: Verwenden eines HTML-Formular Beispiel-HTML-Code:
<form>
<table id="credentials_table">
<tbody>
<tr>
<td class="credentials_table_label_cell"><label for="username" id="label_input_1">Username</label></td>
<td class="credentials_table_field_cell"><input class="credentials_input_text" value="" id="username" autocomplete="off" autocapitalize="off" type="text"></td>
</tr>
<tr>
<td class="credentials_table_label_cell"><label for="password" id="label_input_2">Password</label></td>
<td class="credentials_table_field_cell"><input class="credentials_input_password" value="" id="password" autocomplete="off" autocapitalize="off" type="password"></td>
</tr>
<tr id="submit_row">
<td class="credentials_table_field_cell"><input class="credentials_input_submit" value="Logon" type="submit"></td>
</tr>
</tbody></table>
</form>
Probe Selenim-Code Login:
private WebDriver driverForA = new InternetExplorerDriver();
private WebDriver driverForB = new InternetExplorerDriver();
@After
public void after() {
driverForA.close();
driverForB.close();
}
@Test
public void testADoesThisAndBDoesThat() {
driverForA.get("http://my.login.url");
final WebElement usernameInput = driverForA.findElement(By.id("username"));
final WebElement passwordInput = driverForA.findElement(By.id("password"));
final WebElement submitButton = driverForA.findElement(By.xpath("//input[@type='submit' and @value='Logon']"));
// perform the login stuff
clearKeysAndSetValue(usernameInput, "Joe");
clearKeysAndSetValue(passwordInput, "superSecret");
submitButton.click();
// navigate to other pages and do things
driverForB.get("http://my.approval.page");
final WebElement approveButton = driverForB.findElement(By.id("approval_Button"));
approveButton.click();
}
private void clearKeysAndSetValue(final WebElement element, final String valueToSet) {
element.clear();
element.sendKeys(valueToSet);
}
Scenario 2: Using HTTP 401
private final WebDriver driverForA = new InternetExplorerDriver();
private final WebDriver driverForB = new InternetExplorerDriver();
@After
public void after() {
driverForA.close();
driverForB.close();
}
@Test
public void testADoesThisAndBDoesThatHttpBasic() {
// authenticate as a
WebDriverWait wait = new WebDriverWait(driverForA, 5);
Alert alert = wait.until(ExpectedConditions.alertIsPresent());
alert.authenticateUsing(new UserAndPassword("Joe", "superSecret"));
// navigate to other pages and do things
driverForB.get("http://my.approval.page");
final WebElement approveButton = driverForB.findElement(By.id("approval_Button"));
approveButton.click();
}
Warum öffnest du nicht einen neuen Webdriver und stattdessen einen Vbs? – Madhan