在div而非iframe(Python,硒)中查找动态内容

时间:2019-02-11 15:30:13

标签: python html selenium dynamic selenium-chromedriver

我正在尝试从网页上抓取动态内容。该页面显示了前10个元素,然后我必须单击“下一步”按钮以访问下10个元素,依此类推。单击按钮可以正常工作。但是,此后,单击按钮后,它仅返回空列表。

我想获取以下元素的内容:

//*[@id="bt-collapse-442112-slider"]/div[1]/div/div/div[1]/table/tbody/tr[1]/td[3]/div/h3

我注意到第一个div的属性“ data-currentslidecount”在开始时为“ 10”,但是每次单击按钮时都会添加10。

我的初始代码如下:

> for a in range(100):
>     WebDriverWait(driver, mywaits).until(EC.presence_of_element_located((By.XPATH,
> '//*[@id="bt-collapse-442112-slider"]/div[1]')))
>     print(driver.find_element_by_xpath('//*[@id="bt-collapse-442112-slider"]/div[1]/div/div/div[1]/table/tbody/tr[1]/td[3]/div/h3').text)
>     WebDriverWait(driver, mywaits).until(EC.element_to_be_clickable((By.XPATH,
> '//*[@id="bt-collapse-442112-slider"]/div[1]/button[2]')))
>     button = driver.find_element_by_xpath('//*[@id="bt-collapse-442112-slider"]/div[1]/button[2]')
>     button.click()
>     button_count += 1
>     print(button_count) driver.close()

尝试寻找解决方案时,我发现,将内容嵌入到iframe中时经常会发生此问题,并且需要切换框架以获取动态内容。但是,就我而言,似乎没有iframe。

此外,我尝试使用find_element_by_css_selector而不是by_xpath,因为我认为我可以像这样访问div,甚至可以遍历幻灯片数。但是,`

find_element_by_css_selector(div[data-currentslidecount="10")

产生语法错误。我没有为此特定的CSS选择器在线找到解决方案,而且,我不太希望这将解决我的问题。

编辑:

这是HTML:

<div class="bt-slider row slick-initialized slick-slider" data-allitemcount="4184" data-currentslidecount="10"><button type="button" class="slick-prev slick-arrow slick-disabled" aria-disabled="true" style="display: block;"><span class="bab-slick-arrow-text">Zurück</span></button>
  <div class="slick-list draggable">
    <div class="slick-track" style="opacity: 1; width: 2264px; left: 0px;">
      <div class="bt-slide col-xs-12 bt-standard-content slick-slide slick-current slick-active" data-slick-index="0" aria-hidden="false" style="width: 1132px;" tabindex="-1">
        <table class="table bt-table-data">
          <thead>
            <tr>
              <th>
                <p>Veröffentlichung</p>
              </th>
              <th>
                <p>Sitzung</p>
              </th>
              <th>
                <p>Beschreibung</p>
              </th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td data-th="04.02.2019">
                <p>
                  04.02.2019<br>Montag</p>
              </td>
              <td data-th="Sitzung">
                <p>19/78</p>
              </td>
              <td data-th="Beschreibung">
                <div class="bt-documents-description">
                  <h3>
                    78. Sitzung, 19. Wahlperiode, 01.02.2019</h3>

0 个答案:

没有答案