Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Executable jar under OSX: 'The driver executable does not exist' #8

Closed
alayouni opened this issue Apr 9, 2017 · 13 comments
Closed
Assignees

Comments

@alayouni
Copy link

alayouni commented Apr 9, 2017

I'm under MacOS, here's what I get when I run java -jar googlecodejam-cli.jar --init

Initialization] Web browser will open, please authenticate to your Google account with it.
Exception in thread "main" java.lang.IllegalStateException: The driver executable does not exist: /usr/local/bin/geckodriver
at com.google.common.base.Preconditions.checkState(Preconditions.java:518)
at org.openqa.selenium.remote.service.DriverService.checkExecutable(DriverService.java:123)
at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:118)
at org.openqa.selenium.firefox.GeckoDriverService.access$100(GeckoDriverService.java:38)
at org.openqa.selenium.firefox.GeckoDriverService$Builder.findDefaultExecutable(GeckoDriverService.java:112)
at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:302)
at org.openqa.selenium.firefox.FirefoxDriver.toExecutor(FirefoxDriver.java:233)
at org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:125)
at org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:121)
at fr.faylixe.googlecodejam.cli.SeleniumCookieSupplier.get(SeleniumCookieSupplier.java:66)
at fr.faylixe.googlecodejam.cli.ApplicationCommand.browserInit(ApplicationCommand.java:155)
at fr.faylixe.googlecodejam.cli.ApplicationCommand.init(ApplicationCommand.java:214)
at fr.faylixe.googlecodejam.cli.Application.main(Application.java:53)

@alayouni
Copy link
Author

alayouni commented Apr 9, 2017

FirefoxDriverManager.getInstance().setup() from io.github.bonigarcia-webdrivermanager sets the driver path dynamically rather than hard coding it. I fixed the bug in my local and will be happy to submit the fix in a pull request if you grant me permission.

Thanks for sharing the tool by the way!

@Faylixe
Copy link
Owner

Faylixe commented Apr 10, 2017

Hi, thanks for the issues. I recently updated the CLI application, as Firefox driver was not natively embedded in Selenium anymore. That was a quick fix, and i need to consider a more complex driver management now. I will update the tools before Round 1A, allowing user to choose browser and driver (as for issue #3) they wants for authentification, and other features like creating sample dataset from problem description.

Thanks for sharing io.github.bonigarcia-webdrivermanager, didn't know about this :).

Faylixe added a commit that referenced this issue Apr 11, 2017
Implements sample dataset extraction from init action.
@Faylixe
Copy link
Owner

Faylixe commented Apr 11, 2017

The issue is now solved by https://github.com/Faylixe/googlecodejam-cli/releases/tag/v1.4.0 release.
Thanks for the contribution again :)

@Faylixe Faylixe closed this as completed Apr 11, 2017
@alayouni
Copy link
Author

Just tested it, it looks perfect thanks!

@Faylixe
Copy link
Owner

Faylixe commented Apr 11, 2017

Please note though, that the source file upload is still somehow broken (file is correctly uploaded but the built zip file is corrupted into their server). So use this tools for input download only to be sure. For uploading source code and output file uses the dashboard UI.

@alayouni
Copy link
Author

Hmm, ok thanks for the update. I'll have a deeper look later on today and see if I can hopefully fix the upload problem. I'll let you know.

@Faylixe
Copy link
Owner

Faylixe commented Apr 11, 2017

The real problem with fixing the upload issue is that you can only test it during an online round. I had a test contest opened for testing once for validating my tool, when i didn't spot the issue. See #5 for more details .

@alayouni
Copy link
Author

I see, I really want to get this thing working though, so I think I'll sacrifice round 1A just to debug the upload issue. I'll have rounds 1B and 1C to catch up with later.

@Faylixe
Copy link
Owner

Faylixe commented Apr 11, 2017 via email

@Faylixe
Copy link
Owner

Faylixe commented Apr 11, 2017

If you want you can try to ask Google Code Jam admins to open a testing contest for it. but i think they have lot of work and are not really available for such task.

@alayouni
Copy link
Author

alayouni commented Apr 11, 2017

oh wow, thanks for taking the time to share all the details, I'll keep you posted on what I end up with.

I'm in Tunisia myself, it'll be 2 am when the contest starts which shouldn't be a problem in a Friday night. This is my first code jam, so I don't know how I'm going to compare with competition, I have humble expectations but we'll see. The top 1000 performers in round 1A won't be allowed to participate in subsequent rounds so i believe it's safe enough to assume B and C will be easier.

I did post a question about google's python based commandline tool in their code jam group, the admins did not allow the post for no explicit reason. There are a few reasons I'm guessing might have driven their decision to abandon the tool, it could be that very few users have used it in the past and maybe they find it unfair to give those a privilege over the rest (vast majority) who might not even be aware of the tool. Just my personal random guesses though, I've no evidence obviously. I also tweeted them with no response, so asking them for a testing server won't make a difference I believe.

@Faylixe
Copy link
Owner

Faylixe commented Apr 11, 2017

No problem. I don't have time to handle this unfortunately so i am glad someone want to contribute and try to fix it :)

Concerning the python CLI tools, it is deprecated since few years already since ClientLogin authentification protocol has been closed by Google. Now all Google Services uses OAuth, but CodeJam is the only one who don't, so the situation is quite weird. That is why i use Selenium to perform the login step. The only way to perform HTTP request to the Codejam platform is to be already logged, using the SACSID token into your cookies. I decided to start codejam client, CLI, and Jammy once the old tools were defenitivly dead.

I think they didn't allow you to post since they don't want other users to be aware of a tool that doesn't work anymore, and could lead to issues during contest. I also think they have lot of work to do during contest period, switching with their current work as engineer and time dedicated to Codejam so they are not as much responsive as this tool will never be a priority.

@Faylixe
Copy link
Owner

Faylixe commented Apr 11, 2017

From now if we can switch conversation on #5 as it is an appropriate issue for this problem that would be great :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants