私はPythonでスクリプトを書いて、最初のページからペジネーションを経て別のページを横切るようにセレンを使いました。しかし、いくつかの数字を除いて、次のページボタンのオプションはありません。その番号をクリックすると、次のページに移動します。とにかく、私は私のスクリプトでそれをしようとすると、それは2番目のページをクリックしてそこに行くが、それはもはやスライドしない、私は次のエラーをスローする破る3番目のページに行くのではなく、意味した。次のページに移動することはできません
line 192, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
私がしようとしているスクリプト:
<tr align="right" valign="top" style="font-size:XX-Small;font-weight:normal;white-space:nowrap;">
<td colspan="8"><span>Page: </span><a href="javascript:__doPostBack('dgAwards$ctl01$ctl01','')">1</a> <a href="javascript:__doPostBack('dgAwards$ctl01$ctl02','')">2</a> <span>3</span> <a href="javascript:__doPostBack('dgAwards$ctl01$ctl04','')">4</a> <a href="javascript:__doPostBack('dgAwards$ctl01$ctl05','')">5</a> <a href="javascript:__doPostBack('dgAwards$ctl01$ctl06','')">6</a> <a href="javascript:__doPostBack('dgAwards$ctl01$ctl07','')">7</a> <a href="javascript:__doPostBack('dgAwards$ctl01$ctl08','')">8</a> <a href="javascript:__doPostBack('dgAwards$ctl01$ctl09','')">9</a> <a href="javascript:__doPostBack('dgAwards$ctl01$ctl10','')">10</a> <a href="javascript:__doPostBack('dgAwards$ctl01$ctl11','')">...</a></td>
</tr>
ところで、改ページのオプションはで "検索" ボタンをクリックすると表示されます。改ページ番号があり、その中
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("http://www.cptu.gov.bd/AwardNotices.aspx")
wait = WebDriverWait(driver, 10)
driver.find_element_by_id("imgbtnSearch").click()
for item in wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "#dgAwards > tbody > tr > td > a"))):
item.click()
driver.quit()
要素メインページ。
'wait.until'は要素を返しません。あなたは 'find_element(s)'メソッドを使う必要があります – Amit
私は最初にそれを試みましたが、それも助けをもたらしませんでした。 – SIM
ここで、例外 – Amit