Open YoheiSuda2 opened 9 months ago
Hi @YoheiSuda2. It looks like Edge is crashing during startup. I will need some more info to investigate further. Are you able to share a short code sample / minimal website that reproduces the issue?
@bwalderman Thank you for replying.
I'm too busy to provide a sample, so I'll give you the details of the current situation. Simply passing "C\Users{user}\AppData\Local\Microsoft\Edge\User Data "to --user-data-dir causes a crash, which is reproduced in my environment. I can work around it by passing "C\Users{user}\AppData\Local\Microsoft\Edge\User Data\Default", but I am unable to specify directly under User Data as before. Selenium is used in Java 11.
If necessary, we will create a sample and provide it to you after the new year.
This is still a valid issue.
Everything works until user-data-dir
option is passed. Then Edge starts but session can't be created.
options.addArguments("user-data-dir=" + userDataDir);
Without this line, it will start edge, load the temp profile, load the site and quit.
With this line, it will start edge, it will load correct profile (fav, session, top right user icon etc) but edgedriver can't connect. It will also not open the site.
Error:
Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: Microsoft Edge failed to start: exited normally.
(session not created: DevToolsActivePort file doesn't exist)
(The process started from msedge location C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe is no longer running, so msedgedriver is assuming that msedge has crashed.)
Host info: host: 'WIN11', ip: '169.254.123.3'
Build info: version: '4.22.0', revision: 'c5f3146703*'
System info: os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0', java.version: '21.0.2'
Driver info: org.openqa.selenium.edge.EdgeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: MicrosoftEdge, ms:edgeOptions: {args: [user-data-dir=C:\Users\...], extensions: []}}]}]
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61)
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:518)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:232)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:161)
at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:114)
at org.openqa.selenium.edge.EdgeDriver.<init>(EdgeDriver.java:60)
at org.openqa.selenium.edge.EdgeDriver.<init>(EdgeDriver.java:56)
at org.openqa.selenium.edge.EdgeDriver.<init>(EdgeDriver.java:48)
Here's your repro:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.edge.EdgeOptions;
public class Main {
public static void main(String[] args) {
final WebDriver driver;
final String userHome = System.getProperty("user.home");
final String userDataDir = userHome + "\\AppData\\Local\\Microsoft\\Edge\\User Data";
//noinspection SpellCheckingInspection
final String edgeDriverPath = userHome + "\\Downloads\\edgedriver_win64\\msedgedriver.exe";
// Set the path to the Edge WebDriver executable
System.setProperty("webdriver.edge.driver", edgeDriverPath);
// Set up Edge options to use the existing user data directory
EdgeOptions options = new EdgeOptions();
// options.addArguments("user-data-dir=" + userDataDir); // UNCOMMENT THIS AND IT WILL NOT WORK
// Initialize the Edge WebDriver with the specified options
driver = new EdgeDriver(options);
driver.get("https://example.com");
try {
Thread.sleep(5000); // Wait for 5 seconds
} catch (InterruptedException e) {
e.printStackTrace();
}
driver.quit();
}
}
POM:
<dependencies>
<!-- Selenium dependencies -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.22.0</version>
</dependency>
<!-- Additional dependencies for Edge WebDriver -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-edge-driver</artifactId>
<version>4.22.0</version>
</dependency>
</dependencies>
@YoheiSuda2 , @crimsonvspurple - Did either of you ever find a solution to this? I am facing the same problem with user-data-dir argument in options.
For launching Edge with --no-sandbox switch I suggested launching browser with shortcut, see https://github.com/MicrosoftEdge/EdgeWebDriver/issues/141
On Wed, 28 Aug 2024 at 17:31, mikeangflo @.***> wrote:
@YoheiSuda2 https://github.com/YoheiSuda2 , @crimsonvspurple https://github.com/crimsonvspurple - Did either of you ever find a solution to this? I am facing the same problem with user-data-dir argument in options.
— Reply to this email directly, view it on GitHub https://github.com/MicrosoftEdge/EdgeWebDriver/issues/125#issuecomment-2315681098, or unsubscribe https://github.com/notifications/unsubscribe-auth/AE6MRRKC3RTKDGZEWH2ONB3ZTXUMDAVCNFSM6AAAAABJ7NJVJSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMJVGY4DCMBZHA . You are receiving this because you are subscribed to this thread.Message ID: @.***>
@YoheiSuda2 , @crimsonvspurple - Did either of you ever find a solution to this? I am facing the same problem with user-data-dir argument in options.
I moved to Chrome. Seems like MS don't care about this.
The error occurs when performing the operation as subject. (I believe the problem is specific to the Edge side, as it was not reproduced with the Chrome Driver)
My environment is as follows. OS: Windows11 Selenium: 4.10.0 Edge: 119.0.2151.72 Edge Driver: 119.0.2151.32
Below is the log.
Thanks.