Próbuję napisać skrypt, który musi otworzyć dwa pudełka na stronie internetowej i uzyskać odpowiedni adres e-mail. Wierzę, że nie odzwierciedlam elementów na stronie prawidłowo. Zobacz mój kod poniżej:

   try:
            WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "body > section > section > section > div.mapAndAttrs > p:nth-child(2)")))
            xxx = driver.find_element_by_css_selector("#titletextonly").text
            #Click on Reply button
            WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.reply-button.js-only"))).click()
            WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'body > section > section > header > div.reply-button-row > div > div.reply-info.js-only')))
            #target email address
            to = driver.find_element_by_css_selector("body > section > section > header > div.reply-button-row > div > div.reply-info.js-only > aside.reply-flap.js-captcha > ul > li.reply-email > p > a").text
        except:

Oto przykładowa strona, z której muszę wyodrębnić e-mail: HTTPS: // Nenedyork. craigslist.org/fct/cto/d/ridgefield-2003-bmw-x5-30-xdrive/7212695001.html.

E-mail znajduje się w przycisku "Odpowiedz", a następnie inny przycisk "Pokaż e-mail".

Wszelkie wskazówki są bardzo mile widziane.

0
Arkan Kalu 12 październik 2020, 21:06

1 odpowiedź

Najlepsza odpowiedź

Możesz użyć:

WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "body > section > section > section > div.mapAndAttrs > p:nth-child(2)")))
xxx = driver.find_element_by_css_selector("#titletextonly").text
#Click on Reply button
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.reply-button.js-only"))).click()
WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'body > section > section > header > div.reply-button-row > div > div.reply-info.js-only')))
#target email address
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, 'body > section > section > header > div.reply-button-row > div > div.reply-info.js-only > aside > ul > button'))).click()
WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'body > section > section > header > div.reply-button-row > div > div.reply-info.js-only > aside')))
texto = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'body > section > section > header > div.reply-button-row > div > div.reply-info.js-only > aside > ul > li.reply-email > p > a'))).text
1
aurajimenez 12 październik 2020, 19:22