Giter Site home page Giter Site logo

au3webdriver's People

Contributors

danp2 avatar mlipok avatar rcmaehl avatar seadoggie001 avatar sven-seyfert avatar thedcoder avatar ye7iaserag avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

au3webdriver's Issues

WD_Demo: Provide example on how to pass additional arguments to ChromeDriver

There is a difference in how additional arguments are passed to the web driver based on the browser being used.
The wd_demo provides an example of how to pass acceptInsecureCerts to the Firefox driver.

A similar example should be made available for the chrome function as well.

I will raise a PR for this soon.

Possibility of webdriver's background work

Hi, Danp2!
First of all, I'd like to appreciate your effort for this nice library.

I'm now developing a simple automation tool by using chrome webdriver, and everything is almost ok.
But the chrome always take the focus to itself while processing action, so I feel uncomfortable when I want to do some other works while running the script.
I found that the built-in functions of IE has no problem like this.
So my question is,
Is possible to make the chrome work in background like _IE functions?

I look forward to your reply.
Thank you.

launching WD with Chrome extension

According to documentation ChromeDriver allows to load extencions in headless mode.
https://sites.google.com/a/chromium.org/chromedriver/extensions

ChromeOptions options = new ChromeOptions();
options.addArguments("load-extension=/path/to/extension");
ChromeDriver driver = new ChromeDriver(options);

How can I accomplish same result with AutoIT?

_WD_Option('Driver', 'chromedriver.exe')
_WD_Option('Port', 9515)
_WD_Option('DriverParams', '--log-path="' & @ScriptDir & '\chrome.log"')
$sDesiredCapabilities = '{"capabilities": {"alwaysMatch": {"goog:chromeOptions": {"w3c": true, "args":[ "--profile-directory=Default","load-extension=\extencsion"]}}}}'

snippet was my starting point, also _WD_Options was one of varaints, but no result.
What is correct method to tell chromedriver that I need to load an extencion?

_WD_Screenshot Base64

It looks like nothing is returned when using _WD_Screenshot with $nOutputType = 3... I think that $sResult was supposed to be set to $sResponse under Case 3

_WD_CheckContext - Return values

is this following description :

;                  Failure - Returns one of the following values:
;                  |$_WD_STATUS_Invalid (0) - Browser context is invalid
;                  |$_WD_ERROR_Exception

wrong or proper ?

$_WD_ERROR_Exception should not be returned as value but as @error

_WD_ExecuteScript() $sJSONNode usage

In wd_helper.au3
all usage of _WD_ExecuteScript() should be reviewed to use: $vValueMode and proper @error returning

I will do this by proposing PR, as for now this Issue is only a reminder for me

_WD_CapabilitiesAdd discussion

Per @TheDcoder on forum --

I would like to request adding the binary options to the vendor-specific options (similar to w3c), it can be used to set the path of the binary executable in Chrome Driver like so:

_WD_CapabilitiesAdd('binary', 'C:\Software\Chromium\bin\chrome.exe')

[Regression] __WD_CloseDriver

__WD_CloseDriver doesn't work after rewrite if chromedriver path not default. Example:
_WD_Option("Driver", "ChromeDriver\chromedriver.exe")
After the script exit. Checking the task manager
image
I looked under the hood of the closing function to find out what the problem is, it seems that the new code does not return the process id if it is not the default path. Example:
image

$aDemoSuite new Col for Paramters

We should look for a better way to implement this that doesn't involve hardcoding function names. I think we could make this data driven by adding a column to $aDemoSuite. Also, it would make more sense to me to pass the browser name instead of the control ID. This would prevent the need from having code like $aBrowsers[_GUICtrlComboBox_GetCurSel($idBrowsers)][0] in multiple routines.

Originally posted by @Danp2 in #154 (comment)

Clicking element, a question between 2 different ways

in wd_core.au3 we can use _WD_ElementAction to click with:

Case 'clear', 'click'
	$sResponse = __WD_Post($_WD_BASE_URL & ":" & $_WD_PORT & "/session/" & $sSession & "/element/" & $sElement & "/" & $sCommand, '{"id":"' & $sElement & '"}')
	$iErr = @error

in wd_helper.au3 we can use _WD_ElementActionEx with DOUBLECLICK :

which will be processed by:

				$sResponse = __WD_Post($sURL, $sOption)

The question is whether, in your experience, WebDriver handles clicks differently in these two cases?
For example, are there problems with one case and not with another?

Thus can we add to _WD_ElementActionEx not only DOUBLECLICK but also CLICK ?
Or should we treat that there is already CLICKANDHOLD ?
Does it make sense?

Unused Variables/Strict Au3Check Settings

The variable $sErr is unused in the latest release (v0.3.0.1) in _WD_Window, _WD_FindElement, and _WD_ElementAction. When running with the strictest Au3Check parameters -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7 -v3, a warning is generated

_WD_FrameLeave's Header

The syntax of _WD_FrameLeave says it doesn't accept any arguments currently, should be updated to this...

;#FUNCTION#===================================================================================================================
; Name ..........: _WD_FrameLeave
; Description ...: This will leave the current frame, to its parent, not necessarily the Top, for subsequent WebDriver operations.
; Syntax ........: _WD_FrameLeave($sSession)
; Parameters ....: $sSession            - Session ID from _WDCreateSession
; Return values .: Success      True
;                  Failure      - WD Response error message (E.g. "chrome not reachable")
; Author ........: Decibel
; Modified ......: 2018-04-27
; Remarks .......: ChromeDriver and GeckoDriver respond differently for a successful operation
; Related .......: 
; Link ..........: https://www.w3.org/TR/webdriver/#switch-to-parent-frame
; Example .......: No
;===============================================================================================================================

(took me waaay to long to realize that I could triple backticks to make a code block :D )

_WD_UpdateDriver: COM Errors

While I will admit some fault here, _WD_UpdateDriver doesn't handle any COM errors resulting from unzipping the downloaded driver. For example, try unzipping to a non-existent directory.

I see a couple ways to fix this:

  • include a COM error handler
  • check to see if the $sInstallDirectory exists and create it if not
  • Possibly: separate the lines with 2+ object level calls as this causes a fatal error (I think?) and check @error between

Happy to submit a pull request if you'd like, just let me know your preference :)

_WD_FindElement - cmd processing

In _WD_FindElement in case when $sStartNodeID = Default >> $sStartNodeID = ""

		$sBaseCmd = ($bShadowRoot) ? "/shadow/" : "/element/"
		$sBaseCmd &= $sStartNodeID
		.........
		$sCmd = '/element' & (($bMultiple) ? 's' : '')
		.........
		__WD_Post($_WD_BASE_URL & ":" & $_WD_PORT & "/session/" & $sSession & $sBaseCmd & $sCmd, ........

can occurs such scenario where $sBaseCmd & $sCmd will be /shadow//element or /element//element

Is this correct that // follow each other?
If this is an real issue and should be fixed, then I can propose fix for this.

Adding Examples

This is a placeholder for future discussions on adding examples to the UDF.

For starters --

  • According to specs, Example line is a simple Yes/No value.
  • Generated help file doesn't pick up the current non-compliant entries

Provide access to Firefox's CDP implementation

From the latest geckodriver release notes --

Introduced the new boolean capability moz:debuggerAddress that can be used
to opt-in to the experimental Chrome DevTools Protocol (CDP) implementation.
A string capability with the same name will be returned by NewSession,
which contains the host:port combination of the HTTP server that can be
used to query for websockets of available targets.

Details on moz:debuggerAddress can be found here.

__WD_CloseDriver

$sFile is unused after storing the result of the regular expression replacement in __WD_CloseDriver (v 0.3.0.6)

_WD_GetSession - Multiple Sessions

This doesn't appear to work with multiple sessions running. It returns the value of the response from the last session created.

Also, this causes $sSession and $sFuncName to go unused in the function :) Not sure why the commented out code, but I'm guessing this is a bit of a WIP? It claims to return a dictionary object, but returns a string as far as I can tell.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.