From da92eb066e7c80ae4ae9d1b3ac42ccc5831e23f2 Mon Sep 17 00:00:00 2001
From: AutomatedTester
+ Webdriver capabilities allow the local end to specify what
+ features it requires the remote end to fulfil to be able to create a
+ new session
+
+ The remote end steps to process capabilities are: Let server capabilities be a JSON Object with the following entries: Let "browserName" be an entry with value equal to the lowercase name of the user agent Let "browserVersion" be an entry with the value equal to the version of the user agent Let "platformName" be an entry with the value equal to the lowercase name of the platform. Let "platformVersion" be an entry with the value equal to the version of the platform Let "acceptSslCerts" be an entry with the value equal to true if it can handle
+ Invalid SSL Certifications else let it be equal to
+ false. Let "takesScreenshot" be an entry with the value equal to true if it can capture
+ a screenshot of the viewport described in Take Screenshot. Let "takesElementScreenshot" be an entry with the value equal to true if it can capture
+ a screenshot of an element as described in Take Screenshot. Let capabilities be the result of getting a property
+ named "capabilities" from the parameters argument. let required capabilities be the result of getting a property
+ name "required capabilities" from capabilities. let desired capabilities be the result of getting a property
+ name "desired capabilities" from capabilities. If required capabilities is undefined and
+ desired capabilities is undefined, go to the last step of this algorithm. Let length be the length of required capabilities
+ if required capabilities is defined else let it be 0. Let k be 0 While k < length: Let capability be the value in required capabilities at index k. If the name of the capability entry is in desired capabilities
+ remove the entry from desired capabilities. Let unmet capabilities be equal to an empty JSON List. Let unprocessed capabilities be a JSON List that contains required
+ capabilities if defined and desired capabilities if defined. Let j be 0 Let capabilties length be the length of unprocessed capabilities. While j < capabilities length:
+
+ Let caps be the entry at index j in unprocessed
+ capabilities.
+ Let browser name be the result of getting a property
+ named "browserName" from caps. If browser name
+ is undefined move to the next step. If caps equals required
+ capabilities do the following:
+ If browser name is defined
+ and is not equal to "browserName" from server capabilities append a string
+ containing the differences between browser name and "browserName"
+ in server capabilities.
+ Let browser version be the result of getting a property
+ named "browserVersion" from caps. If browser name
+ is undefined move to the next step.
+ If caps equals required capabilities do the following: If browser name is defined
+ and is not equal to "browserVersion" from server capabilities append a string
+ containing the differences between browser version and "browserVersion"
+ in server capabilities.
+ Let platform name be the result of getting a property
+ named "platformName" from caps. If platform name
+ is undefined move to the next step.
+ If caps equals required capabilities do the following: If platform name is defined
+ and is not equal to "platformName" from server capabilities append a string
+ containing the differences between browser name and "platformName"
+ in server capabilities.
+ Let platform version be the result of getting a property
+ named "platformVersion" from caps. If platform version
+ is undefined move to the next step.
+ If caps equals required capabilities do the following: If platform version is defined
+ and is not equal to "platformVersion" from server capabilities append a string
+ containing the differences between platform version and "platformVersion"
+ in server capabilities.
+ Let proxy be the result of getting a property
+ named "proxy" from caps. If proxy
+ is undefined move to the next step. If proxy is defined and not a map
+ append a string saying that a map is required else call setup proxy
+ passing in proxy.
+ If caps equals required capabilities do the following: If any errors are returned from setup proxy
+ append to unmet capabilities else set the entry "proxy" in server
+ capabilities to the value in proxy.
+ Let page load strategy be the result of getting a property
+ named "pageLoadStrategy" from caps. If page load strategy
+ is undefined then set the entry "pageLoadStrategy" in server capabilities to normal.
+ If caps equals required capabilities do the following: If page load strategy is defined and not equal to normal, eager and none
+ then append a string saying that it contains an invalid value else set the entry
+ "pageLoadStrategy" in server capabilities to the value in page load
+ strategy.
+
+ If caps equals desired capabilities:
+ Capabilities
+ Processing Capabilities
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
If the length of unmet capabilities is not equal to 0 return + session not created with data unmet capabilities.
+Return server capabilities
+ Webdriver capabilities allow the local end to specify what + features it requires the remote end to fulfil to be able to create a + new session +
++
The remote end steps to process capabilities are:
+Let server capabilities be a JSON Object with the following entries:
Let "browserName" be an entry with value equal to the lowercase name of the user agent
Let "browserVersion" be an entry with the value equal to the version of the user agent
Let "platformName" be an entry with the value equal to the lowercase name of the platform.
Let "platformVersion" be an entry with the value equal to the version of the platform
Let "acceptSslCerts" be an entry with the value equal to true if it can handle + Invalid SSL Certifications else let it be equal to + false.
Let "takesScreenshot" be an entry with the value equal to true if it can capture + a screenshot of the viewport described in Take Screenshot.
Let "takesElementScreenshot" be an entry with the value equal to true if it can capture + a screenshot of an element as described in Take Screenshot.
Let capabilities be the result of getting a property + named "capabilities" from the parameters argument.
let required capabilities be the result of getting a property + name "required capabilities" from capabilities.
let desired capabilities be the result of getting a property + name "desired capabilities" from capabilities.
If required capabilities is undefined and + desired capabilities is undefined, go to the last step of this algorithm.
Let length be the length of required capabilities + if required capabilities is defined else let it be 0.
Let k be 0
While k < length:
+Let capability be the value in required capabilities at index k.
If the name of the capability entry is in desired capabilities + remove the entry from desired capabilities.
+Let unmet capabilities be equal to an empty JSON List.
Let unprocessed capabilities be a JSON List that contains required + capabilities if defined and desired capabilities if defined.
+Let j be 0
+Let capabilties length be the length of unprocessed capabilities.
+While j < capabilities length: +
+ Let caps be the entry at index j in unprocessed + capabilities. +
+Let browser name be the result of getting a property + named "browserName" from caps. If browser name + is undefined move to the next step. If caps equals required + capabilities do the following:
++ If browser name is defined + and is not equal to "browserName" from server capabilities append a string + containing the differences between browser name and "browserName" + in server capabilities. +
+Let browser version be the result of getting a property + named "browserVersion" from caps. If browser name + is undefined move to the next step. + If caps equals required capabilities do the following:
+If browser name is defined + and is not equal to "browserVersion" from server capabilities append a string + containing the differences between browser version and "browserVersion" + in server capabilities. +
+Let platform name be the result of getting a property + named "platformName" from caps. If platform name + is undefined move to the next step. + If caps equals required capabilities do the following:
+If platform name is defined + and is not equal to "platformName" from server capabilities append a string + containing the differences between browser name and "platformName" + in server capabilities. +
+Let platform version be the result of getting a property + named "platformVersion" from caps. If platform version + is undefined move to the next step. + If caps equals required capabilities do the following:
+If platform version is defined + and is not equal to "platformVersion" from server capabilities append a string + containing the differences between platform version and "platformVersion" + in server capabilities. +
+Let proxy be the result of getting a property + named "proxy" from caps. If proxy + is undefined move to the next step. If proxy is defined and not a map + append a string saying that a map is required else call setup proxy + passing in proxy. + If caps equals required capabilities do the following:
+If any errors are returned from setup proxy + append to unmet capabilities else set the entry "proxy" in server + capabilities to the value in proxy. +
+Let page load strategy be the result of getting a property + named "pageLoadStrategy" from caps. If page load strategy + is undefined then set the entry "pageLoadStrategy" in server capabilities to normal. + If caps equals required capabilities do the following:
+If page load strategy is defined and not equal to normal, eager and none + then append a string saying that it contains an invalid value else set the entry + "pageLoadStrategy" in server capabilities to the value in page load + strategy. +
++ If caps equals desired capabilities: +
+ +If the length of unmet capabilities is not equal to 0 return + session not created with data unmet capabilities.
+Return server capabilities
- Webdriver capabilities allow the local end to specify what + WebDriver capabilities allow the local end to specify what features it requires the remote end to fulfil to be able to create a new session
-
The remote end steps to process capabilities are:
+When asked to process capabilities with argument parameters a + remote end must run the following steps:
Let server capabilities be a JSON Object with the following entries:
Let "browserName" be an entry with value equal to the lowercase name of the user agent
Let "browserVersion" be an entry with the value equal to the version of the user agent
Let "platformName" be an entry with the value equal to the lowercase name of the platform.
Let "platformVersion" be an entry with the value equal to the version of the platform
Let "acceptSslCerts" be an entry with the value equal to true if it can handle +
browserName: the lowercase name of the user agent
browserVersion: the version of the user agent
platformName: the lowercase name of the platform.
platformVersion: the version of the platform
acceptSslCerts: be true if it can handle
Invalid SSL Certifications else let it be equal to
false.
Let "takesScreenshot" be an entry with the value equal to true if it can capture +
takesScreenshot: be true if it can capture
a screenshot of the viewport described in Take Screenshot.
Let "takesElementScreenshot" be an entry with the value equal to true if it can capture +
takesElementScreenshot: be true if it can capture
a screenshot of an element as described in Take Screenshot.
Let capabilities be the result of getting a property - named "capabilities" from the parameters argument.
let required capabilities be the result of getting a property name "required capabilities" from capabilities.
let desired capabilities be the result of getting a property diff --git a/webdriver-spec.html b/webdriver-spec.html index 189703221..09c853035 100644 --- a/webdriver-spec.html +++ b/webdriver-spec.html @@ -749,30 +749,29 @@
- Webdriver capabilities allow the local end to specify what + WebDriver capabilities allow the local end to specify what features it requires the remote end to fulfil to be able to create a new session
-
The remote end steps to process capabilities are:
+When asked to process capabilities with argument parameters a + remote end must run the following steps:
Let server capabilities be a JSON Object with the following entries:
Let "browserName" be an entry with value equal to the lowercase name of the user agent
Let "browserVersion" be an entry with the value equal to the version of the user agent
Let "platformName" be an entry with the value equal to the lowercase name of the platform.
Let "platformVersion" be an entry with the value equal to the version of the platform
Let "acceptSslCerts" be an entry with the value equal to true if it can handle +
browserName: the lowercase name of the user agent
browserVersion: the version of the user agent
platformName: the lowercase name of the platform.
platformVersion: the version of the platform
acceptSslCerts: be true if it can handle
Invalid SSL Certifications else let it be equal to
false.
Let "takesScreenshot" be an entry with the value equal to true if it can capture +
takesScreenshot: be true if it can capture
a screenshot of the viewport described in Take Screenshot.
Let "takesElementScreenshot" be an entry with the value equal to true if it can capture +
takesElementScreenshot: be true if it can capture
a screenshot of an element as described in Take Screenshot.
Let capabilities be the result of getting a property - named "capabilities" from the parameters argument.
let required capabilities be the result of getting a property name "required capabilities" from capabilities.
let desired capabilities be the result of getting a property
From e547c823b3987f6fe29a48c15d8edd7cc95940f0 Mon Sep 17 00:00:00 2001
From: AutomatedTester Capabilities
-
When asked to process capabilities with argument parameters a +
When processng capabilities with argument parameters a remote end must run the following steps:
Let server capabilities be a JSON Object with the following entries:
browserVersion: the version of the user agent
platformName: the lowercase name of the platform.
platformVersion: the version of the platform
acceptSslCerts: be true if it can handle
+
acceptSslCerts: be true if the User Agent can handle
Invalid SSL Certifications else let it be equal to
false.
takesScreenshot: be true if it can capture
@@ -25,9 +25,9 @@
let required capabilities be the result of getting a property - name "required capabilities" from capabilities.
required capabilities from capabilities.let desired capabilities be the result of getting a property - name "desired capabilities" from capabilities.
desired capabilities from capabilities.
If required capabilities is undefined and desired capabilities is undefined, go to the last step of this algorithm.
Let length be the length of required capabilities @@ -58,14 +58,14 @@
- Let caps be the entry at index j in unprocessed + Let unprocessed capability be the entry at index j in unprocessed capabilities.
Let browser name be the result of getting a property named "browserName" from caps. If browser name - is undefined move to the next step. If caps equals required + is undefined move to the next step. If unprocessed capability equals required capabilities do the following:
Let browser version be the result of getting a property named "browserVersion" from caps. If browser name is undefined move to the next step. - If caps equals required capabilities do the following:
+ If unprocessed capability equals required capabilities do the following:If browser name is defined @@ -97,7 +97,7 @@
Let platform name be the result of getting a property named "platformName" from caps. If platform name is undefined move to the next step. - If caps equals required capabilities do the following:
+ If unprocessed capability equals required capabilities do the following:If platform name is defined @@ -112,7 +112,7 @@
Let platform version be the result of getting a property named "platformVersion" from caps. If platform version is undefined move to the next step. - If caps equals required capabilities do the following:
+ If unprocessed capability equals required capabilities do the following:If platform version is defined @@ -129,7 +129,7 @@
If any errors are returned from setup proxy @@ -143,7 +143,7 @@
Let page load strategy be the result of getting a property named "pageLoadStrategy" from caps. If page load strategy is undefined then set the entry "pageLoadStrategy" in server capabilities to normal. - If caps equals required capabilities do the following:
+ If unprocessed capability equals required capabilities do the following:If page load strategy is defined and not equal to normal, eager and none @@ -154,7 +154,7 @@
- If caps equals desired capabilities: + If unprocessed capability equals desired capabilities:
This section is non-normative.
-The suggested order for comparing keys in the Capabilities instance when creating a session is:
-For all comparisons, if the key is missing (as determined by a call to Capability.has() returning "false"), that particular criteria shall not factor into the - comparison.
-