簡體   English   中英

為什么我的 selenium 腳本在我不在正在運行的瀏覽器中觀看時不能正常工作,但當我正常工作時?

[英]Why doesn't my selenium script work properly when im not watching in my running browser but when i am it works fine?

我編寫了一個腳本來購買一件物品,整個購買鞋子的過程需要 24 秒,但我知道它可能只有 5 秒。 我認為如果我無頭運行它會更快完成,因為我搜索了它並且許多網站都這么說。 我使用遠程調試 chrome session 在終端中設置: Google\ Chrome --remote-debugging-port=4813 --user-data-dir="~/ChromeProfile” 。如果我運行它並且我的腳本工作正常然后立即切換到正在運行的 Chrome window 但是如果我運行它並且不切換到瀏覽器我收到錯誤: selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//div[@role='presentation'][.//span[.='50.5']]”} . 我從: driver.get('url')開始,然后: driver.implicitly_wait(3) driver.find_element(By.XPATH, '//*[@id="picker-trigger"]').click() print('Showed the menu')但我不明白的是,如果腳本在沒有我在瀏覽器本身中觀看的情況下運行,它說它點擊了選擇器觸發器,但是當我 go 到瀏覽器時,菜單沒有展開. 然后給了我錯誤:無法定位元素。 對於下一行: driver.implicitly_wait(3) driver.find_element(By.XPATH, f"//div[@role='presentation'][.//span[.='{sizee}']]").click() print('Selected the size')我不明白為什么當我不在瀏覽器中觀看時它不會展開菜單但是當我在它工作時。 此外,如果我使用無頭選項運行它,它甚至不會打印“顯示菜單”,這就是我一直試圖弄清楚的。 所以我的問題是,為什么 click() 不點擊菜單,所以當我不看它運行時它會展開? 最后我試圖無頭運行這個腳本,所以它會更快。 這些是我的 chrome_options: chrome_options = webdriver.ChromeOptions() chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:4813") chrome_options.add_argument('window-size=1920x1080') driver = webdriver.Chrome(options=chrome_options)網站鏈接: https://www.zalando.nl/jordan-air-jordan-1-mid-sneakers-hoog-joc12n001-a18.html

提前致謝

是的,調試這種行為非常令人沮喪!

一種可能性...您的選擇器中是否存在印刷錯誤? '{sizee}'應該是'{size}'嗎?

我還建議您使用WebDriverWait來等待您的元素真正知道它們是否存在。 如果您超時,那么您就知道它們沒有顯示。

暫無
暫無

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

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