| Age | Commit message (Collapse) | Author |
|
Check that the timesheet hasn't already been submitted before trying to
submit it. Otherwise we'd resubmit the timesheet which is not what we
want. We only want a single submission across successive runs of the
program.
|
|
Remove our test date and use the most recent Friday instead.
|
|
This time the test for page load using the `friday` date didn't work.
Not sure why, it should be the same and the text and element looks
right. The only thing I can think of is that Selenium isn't smart enough
to know there are multiple elements with the same class name and so it
was comparing the wrong one, and last time when it worked it was just a
fluke that happened to work the first time.
Replace the CSS selector with an XPath selector that will get a "unique"
element for us and still check that the correct date appears (here,
formatted as "Wednesday, 24 January").
|
|
Get rid of our header variables as these are now replaced with our
command line arguments.
Add function arguments to `login` and `submit_week_for_approval` to take
the values they need from the command line arguments.
|
|
Make a function that will get a password string given a shell command.
This allows us to pass a command to the program instead of a clear text
password.
|
|
Doesn't do anything but parse the arguments yet. Really liking Python's
built-in argument parser, really simple to use.
|
|
Don't launch the GUI.
|
|
These debug helpers are no longer needed now that we have a working
program.
|
|
Instead of waiting on an "invisible" `<script>` tag that Selenium
doesn't know how to do, check that the "week" page is loaded a different
way: by checking that the year appears in the header and the day appears
in a column header.
Uncomment the rest of the function.
We weren't clicking the confirmation button (`.approval-confirmation`).
Added a `click()` call there.
|
|
Just saving this because it works, which is neat. Unfortunately, I can't
use it in a Selenium wait expectation because it doesn't allow me to
compare arbitrary strings. I have to speak its language, with elements
and contents etc.
This answer showed me how to do this:
https://stackoverflow.com/questions/20497607/how-to-get-the-contents-of-a-script-tag-in-selenium/20498102#20498102
|
|
First pass, doesn't work yet.
This will determine last Friday's date and visit the page corresponding
to that week. It will then try to submit that week's timesheet.
The `wait` on the `script` tag contents waiting for the "week" page to
load isn't working. Looks like you can't wait on the contents of a
`<script>` tag.
Moved the `wait` variable outside of `login` so it can be used in
`submit_week_for_approval`.
|
|
Wait until an element from the logged-in page is found before finishing
or moving on from login.
|
|
The start of a script that will log into Harvest via the normal web
interface and submit the most recent full week's time sheet for
approval.
It uses Selenium and the Firefox WebDriver. It works with the
`-headless` option, but I've commented that out for testing. Right now,
it can open the Harvest sign-in page and log in.
|