ChromeDriver是与Chromium团队合作开发的,是一个实现WebDriver线路协议的独立服务器。
每个 capybara/selenium 4 测试的格式错误的请求
从 selenium 3 升级到 4 后,每个功能测试都会触发两个无效请求,puma 会记录以下错误: 2024-02-06 09:38:36 -03 HTTP 解析错误,格式错误的请求:# 从 selenium 3 升级到 4 后,每个功能测试都会触发两个无效请求,并且 puma 会记录以下错误: 2024-02-06 09:38:36 -03 HTTP parse error, malformed request: #<Puma::HttpParserError: Invalid HTTP format, parsing fails. Are you trying to open an SSL connection to a non-SSL Puma?> 这就是 chromedriver 的配置方式: Capybara.register_driver :chrome do |app| options = Selenium::WebDriver::Chrome::Options.new( args: [ 'headless=new', 'no-sandbox', '--window-size=2560,1440', '--disable-web-security', '--allow-running-insecure-content', "--enable-logging", # Enables logging "--log-level=0", # Enables all logging "--v=1" # Sets the verbosity level of logging ] ) options.add_option('goog:loggingPrefs', { browser: 'ALL' }) Capybara::Selenium::Driver.new(app, browser: :chrome, options: options) end 我无法识别这些请求是什么? 关于如何摆脱它们或如何调试这些请求有什么想法吗? -- 2024 年 9 月更新 仍然没有弄清楚这一点,并且在将 chromedriver 从 127 升级到 128 后开始出现相同的错误。 此外,每个第一个功能测试都会失败,并显示一条消息 This site can't be reached。 更新 将服务器从 puma 更改为 webrick 将消除警告,但第一个功能测试仍然失败,并出现 This site can't be reached 错误 了解 HTTP 解析错误 错误信息 HTTP 格式无效,解析失败。您是否正在尝试打开与非 SSL Puma 的 SSL 连接?表明正在使用的 HTTP 和 HTTPS 协议之间存在不匹配。如果在需要 HTTP 时尝试使用 HTTPS 连接到 Puma 服务器,则经常会发生这种情况,反之亦然。 调试步骤 检查服务器配置: 如果您通过 HTTP 访问 Puma 服务器,请确保不会无意中配置 SSL/TLS。验证您在测试设置中使用的协议是否正确。 水豚配置: 仔细检查您如何设置应用程序服务器以及您在测试中使用的 URL。确保您始终使用 HTTP 或 HTTPS。 检查网络流量: 使用网络监控工具检查测试期间发出的请求。浏览器开发工具可以帮助您查看加载测试环境时正在触发哪些请求。 记录: 增加 Puma 服务器和 Chrome 选项中的日志记录详细程度: 在 Puma 方面,调整 Puma 配置中的日志记录级别 文件或启动命令。 对于 Chrome 日志记录,您已经设置了高详细程度,但是 确保您查看指定目录中生成的日志。 潜在的修复 禁用 SSL 验证: 如果您正在针对非 SSL 端点进行测试,但具有 SSL 配置,则可能需要在请求中禁用 SSL 验证: options.add_argument('--ignore-certificate-errors') options.add_argument('--allow-insecure-localhost') 使用Webrick: 由于切换到 Webrick 目前可以消除该错误,因此在使用 Puma 进一步调查时可以考虑暂时使用它。这不是一个长期的解决方案,但它可以帮助隔离问题。 更新 Gem 依赖项: 确保您的所有 Ruby gem 均已更新,尤其是与 Capybara、Selenium 和 Puma 相关的那些。有时不兼容可能会导致问题。 检查您的测试环境: 如果第一次测试失败并显示“无法访问此站点”,请确保在运行测试之前正确启动应用程序服务器。增加依赖于服务器响应的测试的等待时间也可能是值得的。 降级 ChromeDriver: 如果问题是在 ChromeDriver 升级后出现的,请考虑在调试问题时暂时将 ChromeDriver 降级回版本 127。 水豚配置示例 以下是重组水豚配置的方法: Capybara.register_driver :chrome do |app| options = Selenium::WebDriver::Chrome::Options.new options.add_argument('--headless=new') options.add_argument('--no-sandbox') options.add_argument('--window-size=2560,1440') options.add_argument('--disable-web-security') options.add_argument('--allow-running-insecure-content') options.add_argument('--ignore-certificate-errors') options.add_argument('--allow-insecure-localhost') options.add_option('goog:loggingPrefs', { browser: 'ALL' }) Capybara::Selenium::Driver.new(app, browser: :chrome, options: options) end 结论 继续执行这些调试步骤和建议的配置。如果这些方法都不能解决问题,请提供更具体的详细信息,例如您的 Puma 服务器配置、如何在测试环境中启动服务器,以及 Puma 和 Chrome 的输出日志。这将有助于进一步找出根本原因。
如何使用 Selenium 和 c# 截取浏览器的屏幕截图,包括 URL 和选项卡
如何使用 Selenium 和 C# 截取浏览器的屏幕截图,包括 URL 和选项卡? 请看图片明白我的意思 【今天的截图是这样的】 (https://i.sstat...
在 webdriver io 中发现一种奇怪的行为,.equals 方法不起作用,但 ' === ' 在断言中起作用
您好,我是 webdriverio 自动化的新手,在练习 webdriverio 时,我发现了一个奇怪的行为。 这是我的测试代码 const internetPage = require("../pages/InternetPage"); //导入...
如何使用 Python 让 Selenium 与 ng-click 交互?
我试图让 Selenium 与网站上的按钮进行交互,但该按钮除了类(我还没有得到它的工作)和 ng-click 之外没有标识符。我如何告诉 Selenium 来...
你可以使用Python3/Selenium通过插件打开我的浏览器吗?
我有带有登录凭据/API 密钥的插件,当 python/selenium 打开新窗口时,我想在 Chrome 浏览器中使用它们。 然而,目前当我的代码打开浏览器时,它是一个新的 Chrome
Selenium + Chromedriver +Excel VBA。在单个代码中多次更改下载目录
我正在编写一个Excel宏来从网站下载某些文件。 我已经更改了默认下载目录。现在,我想下载特定子文件夹中的某些文档。但我...
我尝试在 --headless 模式下运行我的 python selenium 机器人。不幸的是,使用 --headless 模式,它无法绕过 Cloudflare 机器人保护。有什么想法在那里可行吗? 选项 = uc.ChromeOp...
我将一个网址作为输入,并在搜索栏中输入一些文本,而不是单击第一个搜索建议并在Python中使用selenium单击搜索图标。 但现在 selenium 驱动程序无法
我正在使用 Selenium 运行 Python 脚本,以对通过深层链接打开应用程序的服务进行身份验证 我正在使用 Selenium 运行 Python 脚本,以对通过深度链接打开应用程序的服务进行身份验证...
这里是脚本,我尝试了所有驱动程序msedgedriver和chromedriver图像 从硒导入网络驱动程序 从 selenium.webdriver.chrome.service 导入服务 来自
我面临的问题与使用需要使用用户名和密码进行身份验证的付费代理有关。当我尝试使用 ChromeDriver 自动进行代理切换时,会出现一个弹出窗口,询问...
如何在JAVA的selenium WebDriver中禁用图像/视频下载以及如何禁用CSS
我现在使用的是 Chrome WebDriver 最新版本(版本 129.0.6668.59(官方版本)(64 位))。 Chrome 驱动程序版本 129.0.6668.58 我想获取任何 URL 的标题或头部(Youtube、Instagram、
我今天开始使用硒,在查找这些元素并在第一个元素中填充值并单击第二个元素时遇到问题。 我今天开始使用硒,在查找这些元素并在第一个元素中填充值并单击第二个元素时遇到问题。 <input class="inputDefault-_djjkz input-cIJ7To" name="username" type="text" placeholder="Che nome vuoi usare?" maxlength="999" value=""> <input class="inputDefault-3JxKJ2 input-3ITkQf" type="checkbox" style="width: 24px; height: 24px;"> 这是我的代码 from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # Content to fill - <input class="inputDefault-_djjkz input-cIJ7To" name="username" type="text" placeholder="Che nome vuoi usare?" maxlength="999" value=""> # {"method":"css selector","selector":"[name="Che nome vuoi usare?"]"} # Checkbox - <input class="inputDefault-3JxKJ2 input-3ITkQf" type="checkbox" style="width: 24px; height: 24px;"> driver = webdriver.Chrome() driver.get("https://discord.gg/NGvXRfrmUE") name = driver.find_element_by_class_name("inputDefault-_djjkz input-cIJ7To").send_keys("Test") button = driver.find_element_by_class_name("inputDefault-3JxKJ2 input-3ITkQf").click 我第一次遇到这个例外 selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".inputDefault-_djjkz input-cIJ7To"} 这是第二个 selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".inputDefault-3JxKJ2 input-3ITkQf"} 既然name可用,你应该使用name attribute。 driver.find_element_by_name('username').send_keys("Test") 我可以在最后看到这个 HTML : <input class="inputDefault-_djjkz input-cIJ7To inputField-4g7rSQ" name="email" type="text" placeholder="" aria-label="Email or Phone Number" autocomplete="off" maxlength="999" spellcheck="false" value=""> 所以这里name是email,所以应该尝试一下: driver.find_element_by_name('email').send_keys("Test") 更新1: driver.get("https://discord.com/invite/NGvXRfrmUE") driver.maximize_window() wait = WebDriverWait(driver, 10) wait.until(EC.element_to_be_clickable((By.NAME, "username"))).send_keys('Test') 进口: from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC 如果您想用硒填充输入文本,请参阅以下示例: def TextInputField(inputId, inputValue): input = browser.find_element(By.ID, inputId) input.click() input.clear() input.send_keys(inputValue) time.sleep(1) 在此示例中,我创建了一个函数,该函数获取输入的 Id,然后单击它,清除它并用值填充它。 您可以在这里看到文档:https://selenium-python.readthedocs.io/ located-elements.html
我正在使用 Selenium 和 Java 来测试 Web 应用程序。 手动访问网络应用程序时,我会收到一个弹出窗口来选择证书文件。此弹出窗口中只有 1 个证书文件,这也是可用的...
Chrome 更新后 Selenium headless 崩溃了
本周末更新 google chrome 后,使用 Selenium python API 的无头模式在 Windows 中运行时会弹出一个空白窗口。 我在 Debian VM 上运行的相同代码不...
“错误无法启动新会话。”在 selenium-remote-driver 版本 4.17.0 及更高版本上,驱动程序在版本 4.16.1 上按预期启动
我的项目pom: 我的项目pom: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>rs.a1.automation</groupId> <artifactId>test-automation-framework</artifactId> <version>2.9</version> <properties> <aspectj.version>1.9.22.1</aspectj.version> <project.java.version>21</project.java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties> <dependencies> <dependency> <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api --> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.24.0</version> </dependency> <dependency> <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core --> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.24.0</version> </dependency> <dependency> <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j2-impl/ --> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j2-impl</artifactId> <version>2.24.0</version> </dependency> <dependency> <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.19.1</version> </dependency> <dependency> <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-http-jdk-client --> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-http-jdk-client</artifactId> <version>4.13.0</version> </dependency> <!-- <dependency> <!– https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-api –>--> <!-- <groupId>org.seleniumhq.selenium</groupId>--> <!-- <artifactId>selenium-api</artifactId>--> <!-- <version>4.16.1</version>--> <!-- </dependency>--> <dependency> <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-remote-driver --> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-remote-driver</artifactId> <version>4.17.0</version> </dependency> <dependency> <!-- https://mvnrepository.com/artifact/io.github.bonigarcia/webdrivermanager --> <groupId>io.github.bonigarcia</groupId> <artifactId>webdrivermanager</artifactId> <version>5.9.2</version> </dependency> <dependency> <!-- https://mvnrepository.com/artifact/org.testng/testng --> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>7.10.2</version> </dependency> <dependency> <!-- https://mvnrepository.com/artifact/org.assertj/assertj-core --> <groupId>org.assertj</groupId> <artifactId>assertj-core</artifactId> <version>3.26.3</version> </dependency> <dependency> <!-- https://mvnrepository.com/artifact/io.qameta.allure/allure-maven --> <groupId>io.qameta.allure</groupId> <artifactId>allure-maven</artifactId> <version>2.14.0</version> </dependency> <dependency> <!-- https://mvnrepository.com/artifact/io.qameta.allure/allure-testng --> <groupId>io.qameta.allure</groupId> <artifactId>allure-testng</artifactId> <version>2.29.0</version> </dependency> <dependency> <!-- https://mvnrepository.com/artifact/io.qameta.allure/allure-assertj --> <groupId>io.qameta.allure</groupId> <artifactId>allure-assertj</artifactId> <version>2.29.0</version> </dependency> <dependency> <!-- https://mvnrepository.com/artifact/io.qameta.allure/allure-attachments --> <groupId>io.qameta.allure</groupId> <artifactId>allure-attachments</artifactId> <version>2.29.0</version> </dependency> <dependency> <!-- https://mvnrepository.com/artifact/io.qameta.allure/allure-commandline --> <groupId>io.qameta.allure</groupId> <artifactId>allure-commandline</artifactId> <version>2.30.0</version> <exclusions> <exclusion> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </exclusion> </exclusions> </dependency> <dependency> <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml --> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>5.3.0</version> </dependency> <dependency> <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.17.0</version> </dependency> <dependency> <!-- https://mvnrepository.com/artifact/com.github.javafaker/javafaker --> <groupId>com.github.javafaker</groupId> <artifactId>javafaker</artifactId> <version>1.0.2</version> </dependency> <dependency> <!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc --> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <version>12.8.1.jre11</version> </dependency> <dependency> <!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc11 --> <groupId>com.oracle.database.jdbc</groupId> <artifactId>ojdbc11</artifactId> <version>23.2.0.0</version> </dependency> <dependency> <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core --> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.17.0</version> </dependency> <dependency> <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.17.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.13.0</version> <configuration> <source>${project.java.version}</source> <target>${project.java.version}</target> <encoding>${project.build.sourceEncoding}</encoding> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>3.0.0</version> <configuration> <mainClass>rs.a1.automation.test.RunTests</mainClass> <arguments> <argument>-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"</argument> </arguments> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.2.1</version> <executions> <execution> <id>package-jar-with-dependencies</id> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <appendAssemblyId>false</appendAssemblyId> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>rs.a1.automation.test.RunTests</mainClass> </manifest> </archive> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.0.0-M7</version> <configuration> <argLine> -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar" </argLine> </configuration> <dependencies> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>${aspectj.version}</version> <scope>runtime</scope> </dependency> </dependencies> </plugin> <plugin> <groupId>io.qameta.allure</groupId> <artifactId>allure-maven</artifactId> <version>2.13.0</version> <configuration> <reportVersion>2.30.0</reportVersion> </configuration> </plugin> </plugins> </build> </project> 我的chrome版本: 129.0.6668.59(官方版本)(64位)(早期版本也出现该问题) 我收到的 selenium-remote-driver 版本 4.17.0 及更高版本的错误消息: INFO Using chromedriver 129.0.6668.58 (resolved driver for Chrome 129) INFO Exporting webdriver.chrome.driver as C:\Users\xxxxxxxx\.cache\selenium\chromedriver\win64\129.0.6668.58\chromedriver.exe ERROR Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure. Host info: host: 'xxxxxxxxxxxxx', ip: 'xxxxxxxxxxxxxx' Build info: version: '4.19.1', revision: 'abe0ee07dc' System info: os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '21.0.4' Driver info: org.openqa.selenium.chrome.ChromeDriver Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], extensions: [Q3IyNAMAAAAZBAAAEqwECqYCMII...]}}]}] at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:537) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:233) at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:162) at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:114) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:89) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:84) at rs.a1.automation.core.WebDriverActions.startChromeDriver(WebDriverActions.java:82) at rs.a1.automation.core.WebDriverActions.createDriver(WebDriverActions.java:61) at rs.a1.automation.core.WebDriverActions.createDriver(WebDriverActions.java:36) at rs.a1.automation.scenarios.ChangeTariff.setUp(ChangeTariff.java:33) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:141) at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:71) at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:400) at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:333) at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:833) at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600) at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:230) at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63) at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:992) at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:203) at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:154) at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:134) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.testng.TestRunner.privateRun(TestRunner.java:739) at org.testng.TestRunner.run(TestRunner.java:614) at org.testng.SuiteRunner.runTest(SuiteRunner.java:421) at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:413) at org.testng.SuiteRunner.privateRun(SuiteRunner.java:373) at org.testng.SuiteRunner.run(SuiteRunner.java:312) at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95) at org.testng.TestNG.runSuitesSequentially(TestNG.java:1274) at org.testng.TestNG.runSuitesLocally(TestNG.java:1208) at org.testng.TestNG.runSuites(TestNG.java:1112) at org.testng.TestNG.run(TestNG.java:1079) at rs.a1.automation.core.TestNGXmlBuilder.runTestNGXml(TestNGXmlBuilder.java:114) at rs.a1.automation.test.RunTests.main(RunTests.java:13) Caused by: java.lang.NoClassDefFoundError: org/openqa/selenium/remote/http/HttpHeader at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:110) at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:95) at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:67) at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:162) at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:519) ... 38 more Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.remote.http.HttpHeader at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ... 45 more 我为重现此问题所做的唯一更改是在我的 pom 中从 4.16.1 更改为 4.17.0 我实例化chromedriver的方法: private void startChromeDriver() { //using Java 11 HTTP client, avoiding the Netty library which uses the now obsolete AsyncHttpClient System.setProperty("webdriver.http.factory", "jdk-http-client"); WebDriverManager.chromedriver().setup(); ChromeOptions options = new ChromeOptions(); options.addExtensions(new File(".\\src\\test\\resources\\pdfviewer.crx")); driver = new ChromeDriver(options); browserCapabilities = ((RemoteWebDriver) driver).getCapabilities(); javascriptExecutor = (JavascriptExecutor) driver; } 我在互联网上广泛搜索,查看了硒更改日志和提交,但无法找到解决方案...... 经过广泛的搜索,我发现这个问题包含解决我的问题的评论,如果将来有人遇到类似的问题,请将其留在这里:) https://github.com/SeleniumHQ/selenium/issues/13568
'[Errno 13] 权限被拒绝:'/.wdm'。'在 ec2 上使用 selenium 时
这是我的硒代码: 从硒导入网络驱动程序 从 selenium.webdriver.common.keys 导入密钥 从 selenium.webdriver.common.by 导入 从 selenium.webdriver.chrome.service 导入 Se...
我的窗口隐藏代码适用于所有 chromedriver 版本,但不再起作用。 它不适用于最新的 129 更新。 我的硒版本:4.0.0b3 和旧的解决方案: 选项 = webdr...
以下是输入字段的元素详细信息 以下是输入字段的元素详细信息 <input name="aadharNumber" placeholder="Enter Aadhaar No." error="[object Object]" maxlength="12" type="text" class="form-control" value=""> 我写了以下代码 bot.FindElementByClass("form-control").SendKeys ("242730110592") 我也尝试过 bot.FindElementByname("aadharNumber").SendKeys ("242730110592") 如何在输入字段中输入数据? 这段代码对我有用。请注意,SendKeys 方法可以使用括号,也可以不使用括号。 Option Explicit Sub sbTest() Dim bchr As Selenium.ChromeDriver Set bchr = New Selenium.ChromeDriver Dim Keys As New Selenium.Keys Dim sURL As String Dim sUsername As String Dim sPassword As String sUsername = "myusername" sPassword = "mypassword" Call bchr.Start("chrome") bchr.Get ("https://www.wordpress.com") sbDelay (100000) bchr.Window.Maximize sbDelay (100000) bchr.SendKeys (Keys.Tab) bchr.SendKeys (Keys.Tab) bchr.SendKeys (Keys.Tab) bchr.SendKeys (Keys.Tab) bchr.SendKeys (Keys.Tab) bchr.SendKeys (Keys.Tab) bchr.SendKeys (Keys.Enter) sbDelay (100000) bchr.SendKeys sUsername bchr.SendKeys (Keys.Enter) sbDelay (100000) bchr.SendKeys sPassword bchr.SendKeys (Keys.Enter) sbDelay (100000) sbDelay (100000) sbDelay (100000) bchr.Quit End Sub Sub sbDelay(delay As Long): Dim i As Long: For i = 1 To delay: DoEvents: Next i: End Sub
我正在将工作从使用无法检测到的 Chrome 驱动程序转换为使用 nodriver 库 (https://github.com/ultrafunkamsterdam/nodriver)。我需要帮助处理警报,因为我找不到