Automatically download chrome driver. #92

Merged
esirK merged 4 commits from driver_install into master 6 years ago
  1. 2
      deletefb/exceptions.py
  2. 117
      deletefb/tools/chrome_driver.py
  3. 10
      deletefb/tools/common.py
  4. 17
      deletefb/tools/login.py
  5. 2
      requirements.txt
  6. 4
      setup.py

2
deletefb/exceptions.py

@ -0,0 +1,2 @@
class UnknownOSException(Exception):
pass

117
deletefb/tools/chrome_driver.py

@ -0,0 +1,117 @@
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
import re
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
import zipfile
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
import os, sys, stat, platform
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
from urllib.request import urlretrieve
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
from collections import namedtuple
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
from clint.textui import puts, colored
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
import progressbar
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
from selenium import webdriver
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
from .common import NO_CHROME_DRIVER
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
from ..exceptions import UnknownOSException
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
_ = namedtuple('WebDrivers', 'mac linux windows')
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
drivers = ['https://chromedriver.storage.googleapis.com/78.0.3904.70/chromedriver_mac64.zip',
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
'https://chromedriver.storage.googleapis.com/78.0.3904.70/chromedriver_linux64.zip',
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
'https://chromedriver.storage.googleapis.com/78.0.3904.70/chromedriver_win32.zip'
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
]
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
WebDriver = _(drivers[0], drivers[1], drivers[2])
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
def extract_zip(filename):
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
"""
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
Uses zipfile package to extract a single zipfile
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
:param filename:
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
:return: new filename
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
"""
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
try:
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
_file = zipfile.ZipFile(filename, 'r')
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
except FileNotFoundError:
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
puts(colored.red(f"{filename} Does not exist"))
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
sys.exit(1)
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
# Save the name of the new file
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
new_file_name = _file.namelist()[0]
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
# Extract the file and make it executable
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
_file.extractall()
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
driver_stat = os.stat(new_file_name)
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
os.chmod(new_file_name, driver_stat.st_mode | stat.S_IEXEC)
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
_file.close()
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
os.remove(filename)
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
return new_file_name
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
def setup_selenium(driver_path, options):
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
# Configures selenium to use a custom path
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
return webdriver.Chrome(executable_path=driver_path, options=options)
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
def get_webdriver():
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
"""
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
Ensure a webdriver is available
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
If Not, Download it.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
"""
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
cwd = os.listdir(os.getcwd())
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
webdriver_regex = re.compile('chromedriver')
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

We could maybe also construct the expected filename (i.e. chromedriver_platform.zip based on platform.system() like you're doing below

We could maybe also construct the expected filename (i.e. `chromedriver_platform.zip` based on `platform.system()` like you're doing below
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
web_driver = list(filter(webdriver_regex.match, cwd))
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
if web_driver:
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
# check if a extracted copy already exists
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
if not os.path.isfile('chromedriver'):
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
# Extract file
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
extract_zip(web_driver[0])
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
return "{0}/chromedriver".format(os.getcwd())
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
else:
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
# Download it according to the current machine
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
os_platform = platform.system()
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
if os_platform == 'Darwin':
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
chrome_webdriver = WebDriver.mac
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
elif os_platform == 'Linux':
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
chrome_webdriver = WebDriver.linux
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
elif os_platform == 'Windows':
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
chrome_webdriver = WebDriver.windows
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
else:
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
raise UnknownOSException("Unknown Operating system platform")
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
global total_size
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
def show_progress(*res):
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
global total_size
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
pbar = None
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
downloaded = 0
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
block_num, block_size, total_size = res
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
if not pbar:
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
pbar = progressbar.ProgressBar(maxval=total_size)
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
pbar.start()
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
downloaded += block_num * block_size
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
if downloaded < total_size:
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
pbar.update(downloaded)
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
else:
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
pbar.finish()
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
puts(colored.yellow("Downloading Chrome Webdriver"))
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
file_name = chrome_webdriver.split('/')[-1]
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

_, file_name = os.path.split(chrome_webdriver) would be clearer IMO

`_, file_name = os.path.split(chrome_webdriver)` would be clearer IMO
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I use _ just to signify that we don't care about the first part of the tuple that os.path.split returns, but you could just as well do os.path.split(chrome_webdriver)[1] to get it

I use `_` just to signify that we don't care about the first part of the tuple that `os.path.split` returns, but you could just as well do `os.path.split(chrome_webdriver)[1]` to get it
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

_, file_name = os.path.split(chrome_webdriver) would be clearer IMO

IMHO, I think this wouldn't be clearer since we will be making the person reading the code think that chrome_webdriver is a file system path which is not. I think what we can do is add a comment before file_name = chrome_webdriver.split('/')[-1] saying create filename from chrome_webdriver url. What do you think?

> `_, file_name = os.path.split(chrome_webdriver)` would be clearer IMO IMHO, I think this wouldn't be clearer since we will be making the person reading the code think that `chrome_webdriver` is a file system path which is not. I think what we can do is add a comment before `file_name = chrome_webdriver.split('/')[-1]` saying **create filename from chrome_webdriver url.** What do you think?
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Good point, I didn't realize at first that it was supposed to be a URL and not an actual path being split. A comment would help.

Good point, I didn't realize at first that it was supposed to be a URL and not an actual path being split. A comment would help.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
response = urlretrieve(chrome_webdriver, file_name, show_progress)
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
if int(response[1].get('Content-Length')) == total_size:
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
puts(colored.green(f"DONE!"))
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
return "{0}/{1}".format(os.getcwd(), extract_zip(file_name))
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
else:
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
puts(colored.red("An error Occurred While trying to download the driver."))
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
# remove the downloaded file and exit
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
os.remove(file_name)
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
sys.stderr.write(NO_CHROME_DRIVER)
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.
sys.exit(1)
esirK commented 6 years ago (Migrated from github.com)
Review

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.

I think we should have a way to dynamically get the latest chrome driver instead of statically hard-coding them.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.

Yeah, I was thinking that actually. It's not great to have to update the URL every time there's a new release.
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer not shadowing the builtin file() constructor

I'd prefer not shadowing the builtin `file()` constructor
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I like to pass an exit code when calling sys.exit(), so e.g. sys.exit(1) just to be more explicit about the error codes

I like to pass an exit code when calling `sys.exit()`, so e.g. `sys.exit(1)` just to be more explicit about the error codes
weskerfoot commented 6 years ago (Migrated from github.com)
Review

just change this to be a single line return webdriver.Chrome(executable_path=driver_path, options=options)

just change this to be a single line `return webdriver.Chrome(executable_path=driver_path, options=options)`
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I'd prefer something like return "{0}/chromedriver".format(os.getcwd()) just for sylistic reasons

I'd prefer something like `return "{0}/chromedriver".format(os.getcwd())` just for sylistic reasons
weskerfoot commented 6 years ago (Migrated from github.com)
Review

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do webdrivers.darwin or webdrivers.linux, etc

maybe webdrivers should be a namedtuple or something at the top level scope of the module? Then you could do `webdrivers.darwin` or `webdrivers.linux`, etc
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Might be good to create our own exception type here but I think it's fine as is

Might be good to create our own exception type here but I think it's fine as is
weskerfoot commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)
esirK commented 6 years ago (Migrated from github.com)
Review

Any Ideas on how we can do this?

Any Ideas on how we can do this?
esirK commented 6 years ago (Migrated from github.com)
Review

makes sense.

makes sense.
esirK commented 6 years ago (Migrated from github.com)
Review

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.

True. But I will go ahead and create our own Exception file just incase someone needs to add more exceptions in future.
esirK commented 6 years ago (Migrated from github.com)
Review

Like I mentioned in my other comment I think using the .format() method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow)

I totally agree with this. I would prefer f strings but I am sure not everyone is using python>=3.6 🙂

> Like I mentioned in my other comment I think using the `.format()` method of strings should be the way to do this (feel free to disagree, I just think it's a good convention to follow) I totally agree with this. I would prefer `f` strings but I am sure not everyone is using python>=3.6 🙂
weskerfoot commented 6 years ago (Migrated from github.com)
Review

I can handle it in a separate PR. I have some ideas for how to do it nicely.

I can handle it in a separate PR. I have some ideas for how to do it nicely.

10
deletefb/tools/common.py

@ -5,15 +5,13 @@ from selenium.webdriver.common.by import By
from selenium.common.exceptions import ( from selenium.common.exceptions import (
NoSuchElementException, NoSuchElementException,
StaleElementReferenceException, StaleElementReferenceException,
TimeoutException, TimeoutException
JavascriptException
) )
import json import json
import logging import logging
import logging.config import logging.config
import os import os
import pendulum
SELENIUM_EXCEPTIONS = ( SELENIUM_EXCEPTIONS = (
NoSuchElementException, NoSuchElementException,
@ -21,12 +19,14 @@ SELENIUM_EXCEPTIONS = (
TimeoutException TimeoutException
) )
def click_button(driver, el): def click_button(driver, el):
""" """
Click a button using Javascript Click a button using Javascript
""" """
driver.execute_script("arguments[0].click();", el) driver.execute_script("arguments[0].click();", el)
def scroll_to(driver, el): def scroll_to(driver, el):
""" """
Scroll an element into view, using JS Scroll an element into view, using JS
@ -36,6 +36,7 @@ def scroll_to(driver, el):
except SELENIUM_EXCEPTIONS: except SELENIUM_EXCEPTIONS:
return return
def logger(name): def logger(name):
""" """
Args: Args:
@ -66,7 +67,8 @@ def wait_xpath(driver, expr):
except SELENIUM_EXCEPTIONS: except SELENIUM_EXCEPTIONS:
return return
NO_CHROME_DRIVER = """ NO_CHROME_DRIVER = """
You need to install the chromedriver for Selenium\n You need to manually install the chromedriver for Selenium\n
Please see this link https://github.com/weskerfoot/DeleteFB#how-to-use-it\n Please see this link https://github.com/weskerfoot/DeleteFB#how-to-use-it\n
""" """

17
deletefb/tools/login.py

@ -1,11 +1,11 @@
from .common import NO_CHROME_DRIVER
from selenium.common.exceptions import NoSuchElementException from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.options import Options
from seleniumrequests import Chrome
import sys
import time import time
from .chrome_driver import get_webdriver, setup_selenium
def login(user_email_address, def login(user_email_address,
user_password, user_password,
is_headless, is_headless,
@ -34,15 +34,8 @@ def login(user_email_address,
chrome_options.add_argument('--disable-gpu') chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('log-level=2') chrome_options.add_argument('log-level=2')
try: driver_path = get_webdriver()
driver = Chrome(options=chrome_options) driver = setup_selenium(driver_path, chrome_options)
except Exception as e:
# The user does not have chromedriver installed
# Tell them to install it
sys.stderr.write(str(e))
sys.stderr.write(NO_CHROME_DRIVER)
sys.exit(1)
driver.implicitly_wait(10) driver.implicitly_wait(10)
driver.get("https://www.facebook.com/login/device-based/regular/login/?login_attempt=1&lwv=110") driver.get("https://www.facebook.com/login/device-based/regular/login/?login_attempt=1&lwv=110")

2
requirements.txt

@ -4,11 +4,13 @@ bleach==3.1.0
cattrs==0.9.0 cattrs==0.9.0
certifi==2018.11.29 certifi==2018.11.29
chardet==3.0.4 chardet==3.0.4
clint==0.5.1
docutils==0.14 docutils==0.14
idna==2.8 idna==2.8
lxml==4.4.0 lxml==4.4.0
pendulum==2.0.5 pendulum==2.0.5
pkginfo==1.5.0.1 pkginfo==1.5.0.1
progressbar==2.5
pybloom-live==3.0.0 pybloom-live==3.0.0
Pygments==2.4.2 Pygments==2.4.2
python-dateutil==2.8.0 python-dateutil==2.8.0

4
setup.py

@ -27,7 +27,9 @@ setuptools.setup(
"attrs", "attrs",
"cattrs", "cattrs",
"lxml", "lxml",
"pendulum" "pendulum",
"clint",
"progressbar"
], ],
classifiers= [ classifiers= [
"Programming Language :: Python :: 3", "Programming Language :: Python :: 3",

Loading…
Cancel
Save