#java #selenium #authentication #selenium-webdriver
Вопрос:
Я новичок в selenium и пытаюсь автоматизировать вход на одну страницу. Но перед фактическим входом в систему я получаю всплывающее окно для получения дополнительных учетных данных. Шаги: Вставьте адрес страницы в новый открытый браузер (Firefox/Chrome). Нажмите «Ввод», появится всплывающее окно с запросом логина и пароля для загрузки страницы. Я заполняю их вручную, я получаю страницу, которую хочу протестировать.
Я не могу проверить этот всплывающий элемент, чтобы получить Xpath или CSS-селекторы, и без них мой сценарий selenium завершается неудачей.
Когда я пытаюсь использовать https://user:password@pageaddress.com
, я получаю страницу, но ничего не работает. Я нажимаю «Петь», но страница статична.
Можете ли вы дать совет?
С наилучшими пожеланиями, Петр
Комментарии:
1. Хорошо, я узнал, что это обычная аутентификация со страницы, которую я хочу протестировать, но как с этим справиться? Использование JavascriptExecutor также не работает.
2. Какой язык вы используете?
3. Java, я пробовал с разных сторон. Я сосредоточен на firefox, потому что Chrome не находится в ожидаемом местоположении по умолчанию. Для chrome я получаю ошибки, из-за которых двоичные файлы chrome.exe не может быть найден. Настройка параметров.binary_location… не работает для меня.
4. Если вы хотите войти в систему с помощью selenium, вам нужно открыть страницу входа. Вам нужно получить WebElement, а затем отправить ключи. Я думаю, что эта страница поможет вам browserstack.com/guide/…
Ответ №1:
Тестирование на https://jigsaw.w3.org/HTTP/, ссылка «Базовый тест аутентификации»
package selenium;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
public class BasicAuhenticationTest extends WebDriverBase {
public static void main(String[] args) {
WebDriver driver = startChromeDriver();
String protocol = "https://";
String username = "guest";
String password = "guest";
String url = "jigsaw.w3.org/HTTP/Basic/";
String urlFull = protocol username ":" password "@" url;
driver.get(urlFull);
List<WebElement> paragraphs = driver.findElements(By.tagName("p"));
for (WebElement paragraph: paragraphs) {
System.out.println(paragraph.getText());
}
driver.quit();
}
}
выход:
Starting ChromeDriver 90.0.4430.24 (4c6d850f087da467d926e8eddb76550aed655991-refs/branch-heads/4430@{#429}) on port 29989
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
Kvě 28, 2021 3:02:37 ODP. org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
Your browser made it!
Ответ №2:
Спасибо,
Я нашел ответ. Я не смог решить эту проблему с помощью Firefox, но Chrome начинает работать.