[英]python selenium select element
我的頁面看起來像這樣
當我單擊B按鈕,然后整行隱藏
我需要硒才能單擊B按鈕,然后單擊下一個B按鈕
但我不知道如何嘗試使用xpath或class定位
driver.find_element_by_xpath("//*[contains(@class, 'farm_icon_b')]").click()
但是沒有用
我嘗試用戶數組
arr = []
driver.find_element_by_xpath("//*[contains(@class, 'farm_icon_b')]")[0].click()
但也沒有
<a href="#" onclick="return Accountmanager.farm.sendUnits(this, 4352, 6820)" class="farm_village_4352 farm_icon farm_icon_b"></a>
我有想法執行Accountmanager.farm.sendUnits(this, 4352, 6820)
但數字Accountmanager.farm.sendUnits(this, 4352, 6820)
每次都不同
有什么想法嗎?
編輯
我試過了
entries_count =
len(driver.find_elements_by_css_selector(".farm_icon.farm_icon_b"))
for index in range(entries_count):
current_len =
len(driver.find_elements_by_css_selector(".farm_icon.farm_icon_b"))
driver.find_elements_by_css_selector(".farm_icon.farm_icon_b")[entries_count - index - 1].click()
wait.until(lambda driver: len(driver.find_elements_by_css_selector(".farm_icon.farm_icon_b")) == current_len - 1)
但是出現錯誤
引發exception_class(消息,屏幕,堆棧跟蹤)selenium.common.exceptions.WebDriverException:消息:未知錯誤:元素在點(833,706)不可單擊。 其他元素將獲得點擊:...(會話信息:chrome = 64.0.3282.186)(驅動程序信息:chromedriver = 2.35.528161(5b82f2d2aae0ca24b877009200ced9065a772e73),platform = Windows NT 10.0.16299 x86_64)
在div ID中linkCotainer並不有趣,但是在這里
<div id="linkContainer"> <a href="#" class="world_button_active evt-world-selection-toggle">Svět 57</a> <a href="https://forum.divokekmeny.cz" class="footer-link" target="_blank">Fórum</a> - <a href="https://help.divokekmeny.cz" class="footer-link" target="_blank">Nápověda</a> - <a href="/game.php?village=4549&screen=settings&mode=ticket" class="footer-link" target="_blank">Support</a> - <a href="/game.php?village=4549&screen=settings&mode=ref&source=bottom_menu" class="footer-link">Pozvat hráče</a> - <a href="/game.php?village=4549&screen=memo" class="footer-link">Poznámkový blok</a> - <a href="/game.php?village=4549&screen=&action=logout&h=278e0f2a" target="_top" class="footer-link">Odhlášení </a> </div>
它告訴您為什么無法單擊您的元素:
Other element would receive the click: <div id="linkContainer">...</div>
要解決此問題,請首先轉到瀏覽器中的開發工具,單擊“控制台”選項卡,然后查找正在竊取您點擊的元素,從而找到阻止所需元素的元素:
$$("div[id='linkContainer']")
如果返回了控制台中的元素,請單擊箭頭將其展開,並將鼠標懸停在子元素上。 您在頁面上看到突出顯示的內容嗎? 如果是這樣,那就是吸引您點擊的原因,您可以從那里制定新的方法。
很有可能某些東西隱藏了您想要單擊的元素。 如果您在代碼中設置了調試點,然后嘗試在腳本中將元素手動定位到的精確位置,則還可以節省大量時間:
import pdb; pdb.set_trace() # This will drop you into a Python prompt
driver.find_element_by_xpath("//*[contains(@class, 'farm_icon_b')]").click()
一旦腳本到達調試點,它將為您提供完整的所有變量的Python提示符,因此您可以使用驅動程序操作瀏覽器,直到發現問題為止。
狩獵愉快。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.