Соскоб в сети в Selenium Python - PullRequest
       2

Соскоб в сети в Selenium Python

1 голос
/ 30 октября 2019

<div class="valuesWrapper-1ukbb5SP-">
  <div class="valuesAdditionalWrapper-3BfAIuML-">
    <div class="valueItem-3JDGGSt_-">
      <div class="valueTitle-1myNPdtH-">O</div>
      <div class="valueValue-3kA0oJs5-" style="color: rgb(239, 83, 80);">1.28926</div>
    </div>
    <div class="valueItem-3JDGGSt_-">
      <div class="valueTitle-1myNPdtH-">H</div>
      <div class="valueValue-3kA0oJs5-" style="color: rgb(239, 83, 80);">1.29054</div>
    </div>
    <div class="valueItem-3JDGGSt_-">
      <div class="valueTitle-1myNPdtH-">L</div>
      <div class="valueValue-3kA0oJs5-" style="color: rgb(239, 83, 80);">1.28844</div>
    </div>
    <div class="valueItem-3JDGGSt_-">
      <div class="valueTitle-1myNPdtH-">C</div>
      <div class="valueValue-3kA0oJs5-" style="color: rgb(239, 83, 80);">1.28871</div>
    </div>
    <div class="valueItem-3JDGGSt_- blockHidden-2yyjdJcY-">
      <div class="valueTitle-1myNPdtH- blockHidden-2yyjdJcY-"></div>
      <div class="valueValue-3kA0oJs5-" style="color: rgb(239, 83, 80);">1.28871</div>
    </div>
    <div class="valueItem-3JDGGSt_- blockHidden-2yyjdJcY-">
      <div class="valueTitle-1myNPdtH- blockHidden-2yyjdJcY-"></div>
      <div class="valueValue-3kA0oJs5-" style="color: rgb(239, 83, 80);"></div>
    </div>
    <div class="valueItem-3JDGGSt_-">
      <div class="valueTitle-1myNPdtH- blockHidden-2yyjdJcY-"></div>
      <div class="valueValue-3kA0oJs5-" style="color: rgb(239, 83, 80);">−0.00055 (−0.04%)</div>
    </div>
  </div>
</div>

Я бы хотел очистить 1.28926, 1.29054, 1.28844, 1.28871, +0.00040 (+ 0.03%) от HTML-кода выше.

Вот мой код:

total_data = []
count_elements = [i.text for i in WebDriverWait(browser, 20).until(
    EC.presence_of_all_elements_located((By.XPATH, "//div[@class='valueItem-3JDGGSt_-']//div["
                                                   "@class='valueValue-3kA0oJs5-']")))]
for e in count_elements:
    total_data.append(e)
print(total_data)

Но мой результат

['n/a', 'n/a', 'n/a', '1.28871', '+0.00040 (+0.03%)']

Как я могу заставить мой код работать?

1 Ответ

0 голосов
/ 30 октября 2019

Попробуйте изменить ожидаемое условие на presence_of_all_elements_located () на visibility_of_all_elements_located () и с помощью логики python извлечь первые три записи.

total_data = []
count_elements = [i.text for i in WebDriverWait(browser, 20).until(
    EC.visibility_of_all_elements_located((By.XPATH, "//div[@class='valueItem-3JDGGSt_-']//div["
                                                  "@class='valueValue-3kA0oJs5-']")))]
for e in count_elements[:3]:
    total_data.append(e)
print(total_data)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...