标签: selenium-chromedriver

Selenium ChromeDriver,无法启动已加载扩展的 Google Chrome

我正在使用 Selenium 2.0 为我的 Google Chrome 扩展创建自动化测试:

  1. WebdriverJS + NodeJS
  2. Chrome驱动程序
  3. MacOS X 10.8.4

首先,我也想测试安装过程,但是当使用 Selenium 弹出安装对话框时,似乎无法单击“添加”按钮。(我关于这个的另一个问题)。

现在,我改变了计划。我不想在测试过程中安装扩展程序,而是想在安装扩展程序的情况下启动 Chrome。但我还没有成功。

请看下面的代码:

var webdriver = require('selenium-webdriver'),
    chrome = require('selenium-webdriver/chrome');

var o = new chrome.Options();
o.addExtensions(['extensions/chrome/chrome_extension.zip']); // crx file is just a zip file
var s = new chrome.ServiceBuilder('bin/chromedriver').build();
var driver = chrome.createDriver(o, s)
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码时,出现以下错误: 在此输入图像描述

我注意到 ChromeDriver 在打开 Chrome 时会加载一个名为“Chrome Automation Extension 1”的 Chrome 扩展,因此必须有一种方法来加载另一个扩展,要么使用应用程序 ID 直接从 Webstore 加载,要么从本地计算机加载- 已包装或未包装。

任何帮助将不胜感激!

selenium google-chrome-extension selenium-chromedriver selenium-webdriver

0
推荐指数
1
解决办法
6152
查看次数

无法在 Selenium C# 中获取 Chrome 性能日志

我在我的解决方案中使用以下 nuget 包

  1. Selenium.WebDriver - v3.141.0
  2. Selenium.WebDriver.ChromeDriver - v79.0.3945.3600

使用以下代码我正在创建一个 Chrome 驱动程序实例

ChromeOptions options = new ChromeOptions();

//Get Performance Logs from Network tab
ChromePerformanceLoggingPreferences perfLogPrefs = new ChromePerformanceLoggingPreferences();
options.PerformanceLoggingPreferences = perfLogPrefs;
options.SetLoggingPreference("performance", LogLevel.All);
Run Code Online (Sandbox Code Playgroud)

(或者)

ChromePerformanceLoggingPreferences perfLogPrefs = new 
ChromePerformanceLoggingPreferences();
perfLogPrefs.AddTracingCategories(new string[] { "devtools.timeline" });
options.PerformanceLoggingPreferences = perfLogPrefs;
options.SetLoggingPreference("goog:loggingPrefs", LogLevel.All);
options.AddAdditionalCapability(CapabilityType.EnableProfiling, true, true);
Run Code Online (Sandbox Code Playgroud)

并与此相结合

options.AddUserProfilePreference("intl.accept_languages", "en-US");
options.AddUserProfilePreference("disable-popup-blocking", "true");
options.AddArgument("test-type");
options.AddArgument("--disable-gpu");
options.AddArgument("no-sandbox");
options.AddArgument("start-maximized");
options.LeaveBrowserRunning = true;

IWebDriver driver = new ChromeDriver(options);
Run Code Online (Sandbox Code Playgroud)

但是在创建 Chrome 驱动程序实例时,我收到以下错误消息

无效参数:“firstMatch”的条目 0 因无效参数而无效:指定了 perfLoggingPrefs,但未启用性能日志记录

我可以知道我需要进行哪些更改才能获取最新版本的 Chrome 和 Selenium …

c# selenium google-chrome-devtools selenium-chromedriver selenium-webdriver

0
推荐指数
1
解决办法
2842
查看次数

如何在 Java Selenium 中禁用 Chrome 实验性选项 same-site-by-default-cookies?

我想禁用 Chrome 实验选项same-site-by-default-cookiescookies-without-same-site-must-be-secure.

How to set Chrome Experimental option same-site-by-default-cookie in python selenium - Stack Overflow,我知道如何启用,但如果我想禁用该怎么办?

java selenium selenium-chromedriver

0
推荐指数
1
解决办法
2982
查看次数

为什么未检测到的 Chromedriver 无法工作?

import undetected_chromedriver as uc
driver = uc.Chrome()
Run Code Online (Sandbox Code Playgroud)

谷歌浏览器更新后,未检测到的 Chromedriver 无法工作。我无法使用普通的 chromedriver 作为某些块访问请提供一些解决方案,这与 chrome 更新有关吗,现在该怎么办?

请参阅以下错误 -

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\imdec\AppData\Local\Programs\Python\Python310\lib\multiprocessing\spawn.py", line 116, in spawn_main
    exitcode = _main(fd, parent_sentinel)
  File "C:\Users\imdec\AppData\Local\Programs\Python\Python310\lib\multiprocessing\spawn.py", line 125, in _main
    prepare(preparation_data)
  File "C:\Users\imdec\AppData\Local\Programs\Python\Python310\lib\multiprocessing\spawn.py", line 236, in prepare
    _fixup_main_from_path(data['init_main_from_path'])
  File "C:\Users\imdec\AppData\Local\Programs\Python\Python310\lib\multiprocessing\spawn.py", line 287, in _fixup_main_from_path
    main_content = runpy.run_path(main_path,
  File "C:\Users\imdec\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 269, in run_path
    return _run_module_code(code, init_globals, run_name,
  File "C:\Users\imdec\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 96, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File …
Run Code Online (Sandbox Code Playgroud)

python selenium multiprocessing selenium-chromedriver undetected-chromedriver

0
推荐指数
1
解决办法
1万
查看次数

Selenium-Wire 您的连接不安全

我正在使用带有无法检测到的 chromedriver 的 selenium-wire,当我进入某个网站时,它给我:“您与此网站的连接不安全”,并且网站地址中的https被交叉,并且它说证书是无效的。然而,该网站的证书并非无效。当我在普通浏览器上进入该网站时,它可以正常工作。我注意到所有 https 网站上都发生这种情况,即https://httpbin.org/headershttps://google.com/等。

import seleniumwire.undetected_chromedriver as uc
if __name__ == '__main__':
    options = uc.ChromeOptions()
    driver = uc.Chrome(
        options=options,
        seleniumwire_options={}
    )

    driver.get('https://httpbin.org/headers')
Run Code Online (Sandbox Code Playgroud)

这不会给我弹出窗口或任何东西,我仍然可以正常使用该网站,但我想修复它。
我该如何解决这个问题?

python selenium google-chrome web-scraping selenium-chromedriver

0
推荐指数
1
解决办法
1万
查看次数

所有使用Selenium Chrome驱动程序打开的Chrome窗口

如何在地址栏中标识具有特定网址的现有打开的Chrome窗口,并使用C#中的Selenium网络驱动程序在该窗口中打开新标签?我看到的所有示例都显示了如何在Selenium ChromeDriver中打开的窗口中打开新选项卡.

    IWebDriver driver = null;    
    var chromeDriverService = ChromeDriverService.CreateDefaultService();

      chromeDriverService.HideCommandPromptWindow = true;
      driver = new ChromeDriver(chromeDriverService);
  List<string> tabs = new List<string>(driver.WindowHandles);
Run Code Online (Sandbox Code Playgroud)

driver.WindowHandles总是返回ChromeDriver打开的窗口.但是,我正在寻找所有的窗户.一旦执行实例化ChromeDriver的行,就会打开一个新窗口.但是,我需要在现有窗口的新选项卡中打开一个新URL.

c# selenium selenium-chromedriver selenium-webdriver

-1
推荐指数
1
解决办法
993
查看次数

为什么抓取机器人要求我登录浏览器?请指导我

我正在尝试构建一个机器人来从 Twitter 上抓取一些帖子以用于学习目的。问题是浏览器打开并要求登录。但实际上我之前已经登录过。为什么要求重新登录?我的代码中是否缺少某些内容?如果我在这里出错,有人可以指导我吗?如果我不登录,它将给出空的数据框。请帮我。

 import pandas as pd
 import time
 from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By


driver=webdriver.Chrome()
driver.get('https://twitter.com/search?q=python&src=typed_query')
driver.maximize_window()

time.sleep(5)
tweets=driver.find_elements(by='xpath',value='//article[@role="article"]')

user_data=[]
text_data=[]

for tweet in tweets:
    user=tweet.find_elements(by='xpath',value='//span[contains(text(),'@')]').text
    text=tweet.find_elements(by='xpath',value='//div[@lang]').text
    user.append(user_data)
    text.append(text_data)
driver.quit()

df_tweets=pd.DataFrame({'user':user_data,'text':text_data})
df_tweets.to_csv('tweets.csv',index=False)
print(df_tweets)
Run Code Online (Sandbox Code Playgroud)

python web-scraping selenium-chromedriver selenium-webdriver

-1
推荐指数
1
解决办法
71
查看次数

Selenium ChromeDriver:无法设置用户数据目录

我将用户主管设置为我的默认用户数据目录(因此我不必担心每次输入站点密码和登录):

from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("--user-data-dir=~/Library/Application\ Support/Google/Chrome/Default/")
browser = webdriver.Chrome(options=options, executable_path=r"chromedriver")
browser.get('https://mail.google.com/mail/u/0/')
print browser.desired_capabilities
Run Code Online (Sandbox Code Playgroud)

现在我希望我的 Gmail 出现,但它要求我登录。

此外,当我打印所需的功能时,似乎根本没有设置用户数据目录:

{u'takesScreenshot': True, u'acceptSslCerts': True, u'networkConnectionEnabled': False, u'mobileEmulationEnabled': False, u'unexpectedAlertBehaviour': u'', u'applicationCacheEnabled': False, u'locationContextEnabled':对,u'rotatable':False,u'chrome':{u'chromedriverVersion':u'2.29.461585 (0be2cd95f834e9ee7c46bcc7cf405b483f5ae83b)',u'userDataDir':u'2.29.461585 .chromium.Chromium.ihUqp7'}, u'hasTouchScreen': False, u'platform': u'Mac OS X', u'version': u'70.0.3538.110', u'nativeEvents': True, u'handlesAlerts': True, u'takesHeapSnapshot' : True, u'javascriptEnabled': True, u'databaseEnabled': False, u'browserName': u'chrome', u'webStorageEnabled': True, u'browserConnectionEnabled': False, u'cssSelectorsEnabled': True, u' pageLoadStrategy': u'normal'}

我使用的是最新版本的 Selenium (3.141) 和 ChromeDriver (2.29.461585)

python selenium-chromedriver selenium-webdriver

-4
推荐指数
1
解决办法
8303
查看次数