Как получить доступ к тексту во вложенных div? - PullRequest
0 голосов
/ 25 февраля 2020

Попытка получить доступ к определенным свойствам текста, которые являются вложенными. У меня не было проблем с большинством элементов, но просто не удавалось получить некоторые из них.

Я пытаюсь установить: одна переменная = Optomi, другая переменная = Детройт, Мичиган, США (хотя я чувствую, что, получив первую переменную, я могу получить вторую довольно легко)

Полный путь

<a data-control-name="company_link" href="/company/optomi/life/" id="ember2228" class="jobs-details-top-card__company-url ember-view"> Optomi </a> 

Я пытаюсь просто вытащить текстовое значение "Optomi".

Я пробовал:

cname = self.driver.find_elements_by_xpath("//a[@class='jobs-details-top-card__company-url ember-view']/a")
print(cname)

и

cname = self.driver.find_elements_by_css_selector(
          "div.jobs-details-top-card__company-info t-14 t-black--light t-normal mt1")
print(cname)
print(cname.get_attribute("text"))

Есть советы?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

Чтобы вытащить текст Optomi , вам нужно вызвать WebDriverWait для visibility_of_element_located(), и вы можете использовать любую из следующих стратегий локатора :

  • Использование CSS_SELECTOR:

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "a.jobs-details-top-card__company-url.ember-view[data-control-name='company_link'][href*='optomi']"))).text)
    
  • Использование XPATH:

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//a[@class='jobs-details-top-card__company-url ember-view' and @data-control-name='company_link'][contains(@href,'optomi')]"))).text)
    
  • Примечание : необходимо добавить следующий импорт:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
0 голосов
/ 25 февраля 2020

Попробуйте использовать слова CC7052:

cname = self.driver.find_element_by_xpath("//a[@class='jobs-details-top-ard__company-url ember-view']").text

, а затем, возможно, используйте .split для получения Детройта

cname.split(',')[0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...