Selenium webdriver застрял после .get () методJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Selenium webdriver застрял после .get () метод

Сообщение Anonymous »

Я использую Selenium для загрузки нескольких PDF. Чтобы получить доступ к PDF, я использую метод .get () WebDriver , а вместо открытия предварительного просмотра я загружаю PDF непосредственно через настройки FirefoxProfile . Тем не менее, WebDriver всегда застрял, а остальная часть кода не выполнена. Я думаю, что это потому, что Webdriver ожидает, что новая страница загрузится и ожидает. Поскольку мне нужно сделать это для каждого файла, мне было интересно, может ли быть более элегантный способ, не бросая TimeoutException .
Пример кода:
import org.openqa.selenium.TimeoutException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
import org.openqa.selenium.firefox.FirefoxProfile;

import java.time.Duration;

public class TestStuff {
private static final String FIREFOX_DRIVER_PATH = System.getProperty("user.dir") + "\\geckodriver.exe";

public static void main(String[] args){
System.setProperty("webdriver.gecko.driver", FIREFOX_DRIVER_PATH);

FirefoxProfile firefoxProfile = new FirefoxProfile();

firefoxProfile.setPreference("browser.download.folderList", 2);
firefoxProfile.setPreference("browser.download.manager.showWhenStarting", false);
firefoxProfile.setPreference("browser.download.alwaysOpenPanel", false);
firefoxProfile.setPreference("browser.download.dir", System.getProperty("user.dir") );
firefoxProfile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf");

firefoxProfile.setPreference("pdfjs.disabled", true);

firefoxProfile.setPreference("plugin.scan.Acrobat", "99.0");
firefoxProfile.setPreference("plugin.scan.plid.all", false);

FirefoxOptions options = new FirefoxOptions();
options.addPreference("general.useragent.override", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:142.0) Gecko/20100101 Firefox/142.0");
options.setProfile(firefoxProfile);

WebDriver driver = new FirefoxDriver(options);

driver.manage().timeouts().pageLoadTimeout(Duration.ofSeconds(2));

try {
driver.get("https://freetestdata.com/wp-content/upl ... KB_PDF.pdf");
} catch(TimeoutException e) {
System.out.println("Timeout occurred");
}

driver.close();

System.out.println("Test done");
}
}


Подробнее здесь: https://stackoverflow.com/questions/797 ... get-method
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»