Nous utilisons Selenium pour le web scraping, etc. Au moment du développement, j'ai oublié de demander: "Quoi? Comment écrivez-vous cela?", Et j'ai décidé de ne couvrir que les éléments sur lesquels j'étudie dans cet article.
ChromeOptions Dans de rares cas, l'erreur de délai d'expiration suivante se produit si les options requises ne sont pas définies.
Timed out receiving message from renderer: 600.000
À propos de cela, Stack Overflow Answerでは、以下のオプション設定を行えば問題ないそうです。(ちなみに「役に立たない増え続ける引数オプション」と呼ばれており、まさにその通り・・・)
options.addArguments("start-maximized");
options.addArguments("enable-automation");
options.addArguments("--headless");
options.addArguments("--no-sandbox");
options.addArguments("--disable-infobars");
options.addArguments("--disable-dev-shm-usage");
options.addArguments("--disable-browser-side-navigation");
options.addArguments("--disable-gpu");
driver = new ChromeDriver(options);
Avec la méthode WebDriverWait.until, vous pouvez définir un temps d'attente explicite pour que tout élément HTML atteigne un certain état. Cliquez ici pour plus de détails (https://kurozumi.github.io/selenium-python/api.html#module-selenium.webdriver.support.expected_conditions).
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "cnfm_btn")))
WebDriverWait(driver, 10).until(EC.element_located_to_be_selected((By.ID, "cnfm_btn")))
Recommended Posts