我如何使用Selenium从一个div获取两个span的文本字段?

时间:2019-07-16 17:51:27

标签: python-3.x selenium-webdriver

我有这样的html:

$last_entry = Model::latest()->first();

我发现此元素如下:

<div class="event__scores fontBold">
    <span>1</span>
    &nbsp;-&nbsp;
    <span>2</span>
</div>

如果不使用bs4或类似的东西,我无法理解获得current_score = match.find_element(By.XPATH, '//div[contains(@class, "event__scores")]') print(current_score.get_attribute('innerHTML')) 之类的文本需要做什么。 我知道我可以像这样使用bs4:

1 - 2

但是我想知道仅使用Selenium才能获得类似的结果。

1 个答案:

答案 0 :(得分:1)

  1. 请考虑使用Explicit Wait而不是find,因为在您尝试查找元素时可能尚未加载该元素。查看How to use Selenium to test web applications using AJAX technology文章以了解更多详细信息

    current_score = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, '//div[contains(@class, "event__scores")]')))
    
  2. 您正在寻找错误的属性,应该使用innerText而不是innerHTML

    print(current_score.get_attribute('innerText'))    
    

    或仅检索WebElement.text属性

    print(current_score.text)