簡體   English   中英

python硒選擇元素

[英]python selenium select element

我的頁面看起來像這樣

https://imgur.com/Vfhp8N7.png

當我單擊B按鈕,然​​后整行隱藏

我需要硒才能單擊B按鈕,然​​后單擊下一個B按鈕

https://imgur.com/WGltHlG.png

但我不知道如何嘗試使用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> &nbsp;-&nbsp; <a href="https://help.divokekmeny.cz" class="footer-link" target="_blank">Nápověda</a> &nbsp;-&nbsp; <a href="/game.php?village=4549&amp;screen=settings&amp;mode=ticket" class="footer-link" target="_blank">Support</a> &nbsp;-&nbsp; <a href="/game.php?village=4549&amp;screen=settings&amp;mode=ref&amp;source=bottom_menu" class="footer-link">Pozvat hráče</a> &nbsp;-&nbsp; <a href="/game.php?village=4549&amp;screen=memo" class="footer-link">Poznámkový blok</a> &nbsp;-&nbsp; <a href="/game.php?village=4549&amp;screen=&amp;action=logout&amp;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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM