У меня есть список, который имеет несколько ссылок. Каждая переменная совпадает, мне нужно щелкнуть определенную ссылку и получить данные.
Я написал приведенный ниже код. Когда он выполняется, он дает мне только данные 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>