Python - Селен имеет старые данные - PullRequest
0 голосов
/ 28 марта 2020

Я пытаюсь удалить данные из www.blocket.se с селеном. Все идет хорошо, но когда я пытаюсь получить номер телефона, он не работает. Сначала есть кнопка с «Visa telefonnummer», поэтому я нажимаю ее с селеном. Затем появляется номер телефона, но когда я пытаюсь получить его с селеном, он получает только «Visa telefonnummer». Не могли бы вы помочь мне с его получением?

Спасибо за ответы

    driver.get(property_link) # link is ok 
    driver.find_element_by_class_name("iXyZie").click() # i click the button, phone number appears on screen
    phone_number = driver.find_element_by_class_name("fXYiwE").text # it gives me only "Visa telefonnummer"

enter image description here

Это кнопка до нажатия

<div class="ShowPhoneNumberButton__StyledButton-sc-1fetcgp-0 cMGXxG">
    <button type="button" class="Buttonstyles__BaseButton-hz08m4-0 iXyZie"><span class="Buttonstyles__ChildrenWrapper-hz08m4-3 fXYiwE"><svg viewBox="0 0 32 32" color="#363433" width="24" height="24" class="ShowPhoneNumberButton__StyledIconCall-sc-1fetcgp-1 ljfHXc"><defs><path id="iconCall_svg__a" d="M15.466 21.406l5.32-1.401 5.64 8.054-.402.573a8.281 8.281 0 01-2.04 2.02c-1.422.995-2.976 1.494-4.61 1.494-1.428 0-2.916-.38-4.433-1.142-3.098-1.554-6.28-4.645-9.46-9.187C2.302 17.275.487 13.227.085 9.786-.34 6.17.845 3.273 3.506 1.409A8.287 8.287 0 016.103.183L6.78 0l5.64 8.055-3.136 4.52 6.184 8.83zm7.37 7.607a6.501 6.501 0 001.123-.991l-4.011-5.728-5.32 1.4L6.845 12.58l3.136-4.52L5.97 2.332a6.475 6.475 0 00-1.317.716c-2.05 1.436-2.92 3.625-2.584 6.506.363 3.108 2.062 6.849 5.05 11.116 2.987 4.267 5.92 7.143 8.718 8.547 2.594 1.302 4.947 1.232 6.999-.204zm-7.325-12.865a1.5 1.5 0 110-3 1.5 1.5 0 010 3zm6 0a1.5 1.5 0 110-3 1.5 1.5 0 010 3zm6-3a1.5 1.5 0 110 3 1.5 1.5 0 010-3z"></path></defs><use fill="currentColor" xlink:href="#iconCall_svg__a" fill-rule="evenodd" transform="translate(1)"></use></svg><div class="TextCallout1__TextCallout1Wrapper-qzrnab-0 lkIkoj">Visa telefonnummer</div></span></button>
</div>

Это кнопка после нажатия

<div class="ShowPhoneNumberButton__StyledButton-sc-1fetcgp-0 cMGXxG"><a href="tel:08-55115797" class="Buttonstyles__BaseButton-hz08m4-0-a Buttonstyles__BaseAnchor-hz08m4-1 hmzYTq"><span class="Buttonstyles__ChildrenWrapper-hz08m4-3 fXYiwE">Ring 08-551 157 97</span></a></div>

Ответы [ 2 ]

1 голос
/ 29 марта 2020
wait = WebDriverWait(self.driver,30)
wait.until(EC.presence_of_element_located((By.XPATH, "//button[@class='Buttonstyles__BaseButton-hz08m4-0 iXyZie']//span[@class='Buttonstyles__ChildrenWrapper-hz08m4-3 fXYiwE']"))).click()
phone_number = wait.until(EC.presence_of_element_located((By.XPATH, "//a[@class='Buttonstyles__BaseButton-hz08m4-0-a Buttonstyles__BaseAnchor-hz08m4-1 hmzYTq']")))

print phone_number.text

Примечание , пожалуйста, добавьте ниже импорта:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait as Wait
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
0 голосов
/ 28 марта 2020

driver.find_element_by_class_name("fXYiwE").__getattribute__(Visa telefonnummer)

Пожалуйста, попробуйте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...