каждая переменная соответствует мне нужно нажать на конкретную ссылку и получить данные - PullRequest
0 голосов
/ 08 октября 2019

У меня есть список, который имеет несколько ссылок. Каждая переменная совпадает, мне нужно щелкнуть определенную ссылку и получить данные.

Я написал приведенный ниже код. Когда он выполняется, он дает мне только данные AAA (а не BBB ) и ошибку stale element reference: element is not attached to the page document.

Причина этого заключается в том, что элемент, к которомуВы упомянули, удален из структуры DOM, но я понятия не имею, как.

    soup = BeautifulSoup(driver.page_source, "lxml")

    mypage_url  = driver.current_url
    myitems = soup.select('#myitemList a')
    for myitem in myitems:
        print(myitem.text)
        item_url = urljoin(mypage_url, myitem.attrs["href"])
        driver.get(item_url)
        sleep(1)
        driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

        A = "AAA"
        B = "BBB"

        trs = driver.find_elements_by_css_selector("#item_contents > table > tbody > tr")
        for i in range(1,len(trs)):
            names = trs[i].find_element_by_css_selector("td > p > span")

            sleep(1)

            if A  in names.text:
                trs[i].find_element_by_xpath("td/ul/li[1]/input").click()
                sleep(2)
                print(A)
            elif B in names.text:
                trs[i].find_element_by_xpath("td/ul/li[1]/input").click()
                sleep(2)
                print(B)
                break
    driver.close()
    driver.quit()

Это структура HTML, как показано ниже

<div id="myitem" class="panel">
  <div class="side-box">
    <p class="tt"><span></span></p>
    <div class="ct">
      <ul id="myitemList">
        <li id="myitem_21" class="itname">
          <div style="">
            <a href="">shop1</a>
          </div>
          <div style=""></div>
        </li>
        <li id="myitem_23" class="itname">
          <div style="">
          <a href="">shop2</a>
          </div>
          <div style=""></div>
        </li>
        <li id="myitem_54" class="itname">
          <div style="">
            <a href="">shop3</a>
          </div>
          <div style=""></div>
        </li>
        <li id="myitem_94" class="itname">
          <div style="">
            <a href="">shop4</a>
          </div>
          <div style=""></div>
        </li>
      </ul>
    </div>
    <span class="bt"></span>
  </div>
</div>
<tbody>
  <tr>
    <th id="title"></th>
  </tr>
  <tr>
    <td class="clear">
     <p style="">
       <span>AAA
         </span>
     </p>
     <ul class="clear">
       <li><input type="button" name="select" value="" onclick="listClick();"></li>
         <li><input type="button" name="list" value="" onclick="modelClick()"></li>
     </ul>
    </td>
  </tr>
  <tr class="altn">
    <td class="clear">
      <p style="">
        <span>BBB
         </span>
      </p>
      <ul class="clear">
       <li><input type="button" name="select" value="" onclick="listClick();"></li>
         <li><input type="button" name="list" value="" onclick="modelClick()"></li>
      </ul>
    </td>
  </tr>
  <tr>
    <td class="clear">
      <p style="">
        <span>CCC
          </span>
      </p>
      <ul class="clear">
       <li><input type="button" name="select" value="" onclick="listClick();"></li>
         <li><input type="button" name="list" value="" onclick="modelClick()"></li>
      </ul>
    </td>
  </tr>
  <tr class="altn">
      <td class="clear">
        <p style="">
         <span>CCC
           </span>
        </p>
        <ul class="clear">
         <li><input type="button" name="select" value="" onclick="listClick();"></li>
           <li><input type="button" name="list" value="" onclick="modelClick()"></li>
        </ul>
      </td>
    </tr>
  <tr>
    <td class="clear">
      <p style="">
        <span>DDD
         </span>
      </p>
      <ul class="clear">
       <li><input type="button" name="select" value="" onclick="listClick();"></li>
         <li><input type="button" name="list" value="" onclick="modelClick()"></li>
      </ul>
    </td>
  </tr>
</tbody>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...