簡體   English   中英

帶有Python 3.5和Chrome的Selenium-無法單擊通過xpath定位的元素

[英]Selenium with Python 3.5 and Chrome - failed to click element located via xpath

我有一個腳本,可從波蘭雅芳的網站獲取我的信息。 因此,基本上每個月他們都會改變價格,為了讓我女孩的生活更輕松,我只需下載價格以在excel中查找表格。

無論如何,所以我有導航到該網站的腳本: https : //www.avon.pl/szukaj/po-kodzie-produktu/

加載頁面后,它將在搜索框中輸入一個介於00000和99999之間的數字,我可以使用xpath找到該數字:

find_box_path = '//*[@id="ShopByProductNumber"]/div[2]/div[3]/div[1]/div/input'

只有一些代碼有效,因此,如果搜索成功,腳本將單擊該項目,該項目將在新窗口中打開並處理信息,如果未找到任何內容,它將繼續移動到下一個數字。 該腳本檢查xpath以確定代碼是否有效。 以下摘錄將單擊元素並打開一個新選項卡:

#   ------------        click the product       ------------
find_item_text_element = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_xpath(find_text_path))
find_item_text_element.click()
time.sleep(0.4)

find_text_path變量的早期聲明為:

find_text_path = '//*[@id="ShopByProductNumber"]/div[2]/div[3]/p/a'

有趣的一點是,一年多來,我的腳本像一個咒語一樣起作用。 僅在腳本運行前兩天,我才經歷了大約25000種組合,直到彎曲為止。 從這一點來看,當腳本到達上面的位置時,它將關閉並重置。 我知道為什么會重置-這是有意的-但我不知道為什么它不會單擊該元素。 IDE不顯示任何錯誤。

我使用XPather查找xpath,上面的一個是有效的xpath。 正如我所說,到現在為止還可以。 我了解網站本身可以采取某些措施來防止自動化,但是我看不到問題所在。 誰能看到/指出問題? 也許一些解決方法?

這兩個要素的位置

編輯:

問題已解決。 我正在使用的chrome配置文件中的縮放比例設置為105%,而不是100%。 這會導致網絡驅動程序單擊頁面上的錯誤位置。

您能告訴我們導致問題的特定html代碼嗎? 我無法在網站上找到它。 也許您想要達到的元素現在已包含在框架中,但是我只能假設沒有html。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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