Я использую 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
Selenium webdriver застрял после .get () метод ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1758514567
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/uploads/2021/09/Free_Test_Data_100KB_PDF.pdf");
} catch(TimeoutException e) {
System.out.println("Timeout occurred");
}
driver.close();
System.out.println("Test done");
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79771119/selenium-webdriver-gets-stuck-after-get-method[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия