Как правильно выбрать iframe с веб-драйвером? - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь закодировать щелчок кнопкой этой веб-капчи, какой код мне нужен, чтобы нажать ее вниз? веб-сайт: https://www.google.com/recaptcha/api2/demo

Я пробовал:

   //Driver.Manage().Timeouts().ImplicitWait(80, TimeUnit.SECONDS);
   IWebElement iframeSwitch = 
Driver.FindElement(By.XPath("/html/body/section/div/div/section/div/article/div/div[2]/form/table/tbody/tr/td[1]/div/div/div/iframe"));
   Driver.SwitchTo().Frame(iframeSwitch);
   Driver.FindElement(By.CssSelector("div[class=recaptcha-checkbox-checkmark]")).Click();

Снимок экрана: введите описание изображения здесь

1 Ответ

0 голосов
/ 31 марта 2020

Вот код, который можно использовать для установки флажка.

необходим импорт (для явного ожидания)

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

Код для выбора флажка:

frame = WebDriverWait(driver,30).until(EC.presence_of_element_located((By.CSS_SELECTOR,"iframe[name^='a']")))
driver.switch_to.frame(frame)
driver.find_element_by_css_selector('.recaptcha-checkbox').click()
...