url = 'https://etherscan.io/token/0x7ae1d57b58fa6411f32948314badd83583ee0e8c#readContract'/span>
browser = webdriver.Chrome('C:webdriverschromedriver')
headers1 = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'。
}
# wait = WebDriverWait(browser, 10)
browser.get(url)
time.sleep(10)
btn6 = browser.find_element_by_xpath('//*[@id="readHeading6"]/a') # error
btn6.click()
StackOverflow不允許我發布圖片,所以我復制了下面的元素。
< a class="btn btn-link btn-block text-dark D- flex justify-content-between align-items-center py-2 collapsed" data-toggle="collapse" href="#readCollapse6" aria- expanded="false" aria-controls="readCollapse6"> 6. claimedByTokenId <span class="accordion-arrow"/span>> <i class="fas fa-arrow-down small"/span>> </i> < /span></a>
此外,我所使用的每一個XPath幫助器都無法識別我試圖定位的按鈕。我試著通過CSS選擇器、類名、ID、XPath和完整的Xpath來查找。上面的代碼中的XPath來自chrome。檢查元素 > 復制 > xpath.
。我對編程相當陌生,所以希望得到任何幫助!
。謝謝。uj5u.com熱心網友回復:
你的XPath是正確的,但你缺少一些重要的東西。主要是iframe。因此,你的任務的正確步驟是:
1、點擊 "知道了"。
1 點擊 "知道了",接受Cookies。
2 切換到iframe。
2 切換到iframe,因為你的按鈕位于iframe中。
3 匯入 WebDriverWait 以明確地等待您的元素,而不是 time.sleep
你的按鈕將被點擊。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
url = 'https://etherscan.io/token/0x7ae1d57b58fa6411f32948314badd83583ee0e8c#readContract'/span>
browser = webdriver.Chrome(executable_path='/snap/bin/chromium.chromedriver')
headers1 = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'/span>。
}
browser.get(url)
wait = WebDriverWait(browser, 10)
coockie_btn = wait.until(EC.element_to_be_clickable((By.ID, 'btnCookie')).click()
wait.until(EC.frame_to_be_available_and_switch_to_it((By.ID, "readcontractiframe"))
btn6 = wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@id="readHeading6"]/a')).click()
uj5u.com熱心網友回復:
因此,看起來readHeading6實際上并不是你要點擊的按鈕。
如果你在檢查中下拉那個div,看起來你想點擊的xPath實際上是
/html/body/div[3]/div[6]/div[1]/a
如果你所要做的就是輸入一個uint64,并找出它是否被認領(如果我對網站的理解是正確的),我相信你可能會忽略實際下拉該選單,并可能直接進入。
作為一個旁觀者,如果你想知道它是否被認可,你會想閱讀控制臺的輸出,這里有一些幫助
。取決于你想做什么,你實際上不需要點擊按鈕。我不知道 Chrome 瀏覽器的情況,但是 Firefox 有一種方法可以打開 "無頭 "模式,因此唯一的輸出是在終端。
我已經做了一段時間了,但它應該是類似于
的東西。options = webdriver.FirefoxOptions()
options.set_headless()
瀏覽器 = webdriver.Firefox(firefox_options = options)
可能沒有什么幫助,但無論如何都值得添加。
uj5u.com熱心網友回復:
首先,它可能需要接受cookie,這就是為什么你可以嘗試點擊 "得到它 "按鈕,如下所示:
btn6 = browser.find_element_by_xpath('//*[@id="btnCookie"]'/span>)
btn6.click()
time.sleep(1.5)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/318363.html
標籤:
下一篇:更新了正確的chrome驅動路徑/驅動版本,也添加了seleniumjar,但還是出現以下問題,你能幫我解決嗎?
