首页 > 解决方案 > Python selenium chrome驱动程序无头不起作用

问题描述

我试图制作一个允许在亚马逊网站上自动购买的机器人,我做到了。

但后来我想让机器人更快,并试图让 chrome 驱动程序无头。但是当我尝试这样做时,机器人不起作用(实际上它总是会进入不应该去的 NoSuchElement 部分。正如我之前所说的,它通常可以工作。)

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.support.ui import Select
import winsound
import time


options = webdriver.ChromeOptions()
options.add_argument("user-data-dir=C:\\Users\\alpay\\AppData\\Local\\Google\\Chrome\\User 
Data\\Default")
options.add_argument("--headless")




driver = webdriver.Chrome(executable_path="C:\\webdrivers\\chromedriver.exe", options=options)
buyingStatus = True

while(buyingStatus):
    try:
        driver.get("Item Chrome Html")
        print(driver.title)
        beGreedy = Select(driver.find_element_by_id('quantity'))
        print(driver.title)
        beGreedy.select_by_value('1')

        addCart = driver.find_element_by_class_name("a-button-stack").submit()
        print(driver.title)
        completeTheShopping = driver.find_element_by_id("hlb-ptc-btn-native").click()
        if driver.title == "Enter The Amazon":
            driver.find_element_by_id("ap_password").send_keys("Enter Password")
            driver.find_element_by_id("signInSubmit").click()
        print(driver.title)
    

            

        buyNow =  driver.find_element_by_xpath("html")  
                                                          
        freq = 500
        dur = 2000
        winsound.Beep(freq, dur)
        print("ITEM FOUND")
        buyingStatus = False















    

        

    except NoSuchElementException:
        print("ITEM DOESN'T EXIST")
        driver.refresh()
    
    

那么,可能有什么问题?会不会是无头工作太快了?

标签: pythonselenium-webdriverselenium-chromedriver

解决方案


也许您可以尝试使用用户代理

user_agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.24 Safari/537.36'

options.add_argument(f'user-agent={user_agent}')

推荐阅读