m0_66223320 2024-05-25 18:25 采纳率: 0%
浏览 10

360不能正常使用selenium

img

img

img

img

1、我用pycharm调试selenium自动登陆,用Google浏览器就可以正常运行,用360浏览器就报错;(如图123)
2、而且用RPA运行登陆界面的时候就只能try10次,就是打不开360浏览器。(如图4)

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-25 18:25
    关注

    引自免费微信小程序:皆我百晓生

    根据你提供的信息,看起来你在尝试使用 Selenium 配合 360 浏览器进行自动化测试,但遇到了一些问题。这里有一些建议可以帮助你解决这些问题。

    首先,针对图1中的代码,你需要修复导入部分的错误。在第8行,有一个多余的空格,这会导致语法错误。此外,第23行的注释格式不正确,需要修正。以下是修复后的代码段:

    import time
    from selenium import webdriver
    from selenium.webdriver.chrome.service import Service as ChromeService
    from selenium.webdriver.common.by import By
    import ddddocr
    from PIL import Image
    
    def yzm(image_path):
        ocr = ddddocr.Dddd0cr()
        with open(image_path, 'rb') as f:
            img_bytes = f.read()
        res = ocr.classification(img_bytes)
        print(res)
        return res
    
    options = webdriver.ChromeOptions()
    user_data_dir = r'--user-data-dir=D:\360Chrome\Chrome\User Data'
    options.add_argument(user_data_dir)
    options.binary_location_360 = r'D:\360Chrome\Chrome\Application\360chrome.exe'
    service = ChromeService(r'D:\Program Files\PyCharm Community Edition 2022.2.1\codes\chromedriver.exe')
    # options.binary_location_google=r'C:\Program Files\Google\Chrome\Application\chromedriver.exe'#google
    # service = ChromeService(executable_path=options.binary_location_google)
    driver = webdriver.Chrome(service=service)
    

    对于图2中的错误,它表示找不到匹配的驱动程序。这是因为Selenium默认寻找的是Google Chrome的驱动程序,而不是360浏览器的驱动程序。确保你已经下载了360浏览器对应的WebDriver,并将其路径设置为ChromeServiceexecutable_path参数。例如,如果你的360WebDriver位于D:\360ChromeDrivers\chromedriver.exe,则应将这一路径替换到上述代码的相应位置。

    针对图4的问题,你在尝试用RPA运行时遇到的问题可能是由于360浏览器的安全限制导致的。你可以尝试以下方法解决:

    1. 确保360浏览器没有开启阻止自动化脚本的功能。
    2. 尝试禁用360浏览器的防病毒模块,看看是否影响了自动化操作。
    3. 使用更稳定的浏览器版本,比如Chrome或Firefox,因为它们的WebDriver通常更成熟且支持更好。

    以下是基于上述建议修改后的图4代码段:

    import os
    import win32api
    import win32con
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import Select
    
    def stop():
        win32api.keybd_event(27, 0, 0, 0)
        win32api.keybd_event(27, 0, win32con.KEYEVENTF_KEYUP, 0)
        # os.system('TASKKILL /F /IM 360Chrome.exe')  # 不推荐直接杀进程,可能引发不稳定
        os.system('TASKKILL /F /IM chromedriver.exe')
    
    options = webdriver.ChromeOptions()
    options.add_argument('--disable-blink-features=AutomationControlled')
    user_data_dir = r'--user-data-dir=D:\360Chrome\Chrome\User Data'
    options.add_argument(user_data_dir)
    options.binary_location = r'D:\360Chrome\Chrome\Application\360chrome.exe'
    driver = webdriver.Chrome(executable_path='D:\\360ChromeDrivers\\chromedriver.exe', chrome_options=options)
    
    driver.implicitly_wait(30)
    driver.get('https://www.zhihu.com/')
    driver.maximize_window()
    
    window_handles = driver.window_handles
    print(window_handles)
    print('1111')
    time.sleep(3)
    driver.refresh()
    
    for _ in range(10):
        try:
            browser = Select(driver.find_element(By.ID, 'city-opts'))
            driver.switch_to.frame(driver.find_element(By.ID, 'iframe'))
            browser.click()
            print('1')
            time.sleep(5)
        except Exception as e:
            print(f"Error occurred: {e}")
            break
    finally:
        driver.quit()
    

    请确保你的360WebDriver路径正确,并且检查360浏览器设置,确保没有阻止自动化脚本。如果问题仍然存在,请考虑更换其他浏览器进行自动化测试。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月25日

悬赏问题

  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 angular项目错误
  • ¥20 需要帮我远程操控一下,运行一下我的那个代码,我觉得我无能为力了
  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。
  • ¥15 请问用arcgis处理一些数据和图形,通常里面有一个根据点划泰森多边形的命令,直接划的弊端是只能执行一个完整的边界,但是我们有时候会用到需要在有很多边界内利用点来执行划泰森多边形的命令
  • ¥30 在wave2foam中执行setWaveField时遇到了如下的浮点异常问题,请问该如何解决呢?