From fb36efdc5ec3eb2e0eeb0699178a7389d46d0970 Mon Sep 17 00:00:00 2001 From: Daniel Ziltener Date: Tue, 17 May 2022 02:37:54 +0200 Subject: [PATCH] More API implementation --- src/WebDriver/WDElement.class.st | 47 ++++++-- src/WebDriver/WDKeys.class.st | 140 +++++++++++----------- src/WebDriver/WDLocationStrategy.class.st | 10 +- src/WebDriver/WebDriver.class.st | 5 + 4 files changed, 114 insertions(+), 88 deletions(-) diff --git a/src/WebDriver/WDElement.class.st b/src/WebDriver/WDElement.class.st index 12c9a2b..3f1072a 100644 --- a/src/WebDriver/WDElement.class.st +++ b/src/WebDriver/WDElement.class.st @@ -34,13 +34,34 @@ Class { { #category : #accessing } WDElement >> attribute: attr [ + | result | - ^ self driver + result := self driver sendWithSession: { } to: 'element/' , element , '/attribute/' , attr - using: #GET + using: #GET. + ^ result = 'true' ifTrue: [ true ] ifFalse: [ result ]. +] + +{ #category : #accessing } +WDElement >> attributes [ + | script result | + script := 'var items = {}; for (index = 0; index < arguments[0].attributes.length; ++index) { items[arguments[0].attributes[index].name] = arguments[0].attributes[index].value }; return items;'. + result := driver sendWithSession: { #script -> script } + to: 'element/' , element , '/execute/sync' + using: #POST. + ^ result. +] + +{ #category : #simulating } +WDElement >> clear [ + + self driver + sendWithSession: { } + to: 'element/' , element , '/clear' + using: #POST ] { #category : #simulating } @@ -52,7 +73,7 @@ WDElement >> click [ using: #POST ] -{ #category : #testing } +{ #category : #accessing } WDElement >> computedLabel [ ^ self driver sendWithSession: { } @@ -60,7 +81,7 @@ WDElement >> computedLabel [ using: #GET ] -{ #category : #testing } +{ #category : #accessing } WDElement >> computedRole [ ^ self driver sendWithSession: { } @@ -68,31 +89,31 @@ WDElement >> computedRole [ using: #GET ] -{ #category : #accessing } +{ #category : #'private - utilities' } WDElement >> driver [ ^ driver ] -{ #category : #accessing } +{ #category : #'private - utilities' } WDElement >> driver: anObject [ driver := anObject ] -{ #category : #accessing } +{ #category : #'private - utilities' } WDElement >> element [ ^ element ] -{ #category : #accessing } +{ #category : #'private - utilities' } WDElement >> element: anObject [ element := anObject ] -{ #category : #testing } +{ #category : #accessing } WDElement >> isEnabled [ ^ self driver sendWithSession: { } @@ -100,7 +121,7 @@ WDElement >> isEnabled [ using: #GET ] -{ #category : #testing } +{ #category : #accessing } WDElement >> isSelected [ ^ self driver sendWithSession: { } @@ -108,7 +129,7 @@ WDElement >> isSelected [ using: #GET ] -{ #category : #testing } +{ #category : #accessing } WDElement >> name [ ^ self driver sendWithSession: { } @@ -127,7 +148,7 @@ WDElement >> property: attr [ using: #GET ] -{ #category : #testing } +{ #category : #accessing } WDElement >> rect [ ^ self driver sendWithSession: { } @@ -135,7 +156,7 @@ WDElement >> rect [ using: #GET ] -{ #category : #testing } +{ #category : #accessing } WDElement >> text [ ^ self driver sendWithSession: { } diff --git a/src/WebDriver/WDKeys.class.st b/src/WebDriver/WDKeys.class.st index aa01cb9..4bef193 100644 --- a/src/WebDriver/WDKeys.class.st +++ b/src/WebDriver/WDKeys.class.st @@ -7,352 +7,352 @@ Class { #category : #'WebDriver-Constants' } -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> altLeft [ ^ Character codePoint: 16rE00A asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> altRight [ ^ Character codePoint: 16rE0052 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> arrowDown [ ^ Character codePoint: 16rE0015 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> arrowLeft [ ^ Character codePoint: 16rE0012 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> arrowRight [ ^ Character codePoint: 16rE0014 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> arrowUp [ ^ Character codePoint: 16rE0013 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> backspace [ ^ Character codePoint: 16rE003 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> cancel [ ^ Character codePoint: 16rE001 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> clear [ ^ Character codePoint: 16rE005 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> controlLeft [ ^ Character codePoint: 16rE009 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> controlRight [ ^ Character codePoint: 16rE0051 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> delete [ ^ Character codePoint: 16rE0017 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> end [ ^ Character codePoint: 16rE0010 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> enter [ ^ Character codePoint: 16rE007 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> equal [ ^ Character codePoint: 16rE0019 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> escape [ ^ Character codePoint: 16rE00C asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> f1 [ ^ Character codePoint: 16rE0031 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> f10 [ ^ Character codePoint: 16rE003A asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> f11 [ ^ Character codePoint: 16rE003B asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> f12 [ ^ Character codePoint: 16rE003C asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> f2 [ ^ Character codePoint: 16rE0032 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> f3 [ ^ Character codePoint: 16rE0033 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> f4 [ ^ Character codePoint: 16rE0034 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> f5 [ ^ Character codePoint: 16rE0035 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> f6 [ ^ Character codePoint: 16rE0036 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> f7 [ ^ Character codePoint: 16rE0037 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> f8 [ ^ Character codePoint: 16rE0038 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> f9 [ ^ Character codePoint: 16rE0039 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> help [ ^ Character codePoint: 16rE002 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> home [ ^ Character codePoint: 16rE0011 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> insert [ ^ Character codePoint: 16rE0016 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> metaLeft [ ^ Character codePoint: 16rE003D asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> metaRight [ ^ Character codePoint: 16rE0053 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> num0 [ ^ Character codePoint: 16rE001A asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> num1 [ ^ Character codePoint: 16rE001B asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> num2 [ ^ Character codePoint: 16rE001C asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> num3 [ ^ Character codePoint: 16rE001D asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> num4 [ ^ Character codePoint: 16rE001E asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> num5 [ ^ Character codePoint: 16rE001F asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> num6 [ ^ Character codePoint: 16rE0020 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> num7 [ ^ Character codePoint: 16rE0021 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> num8 [ ^ Character codePoint: 16rE0022 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> num9 [ ^ Character codePoint: 16rE0023 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> numArrowDown [ ^ Character codePoint: 16rE005B asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> numArrowLeft [ ^ Character codePoint: 16rE0058 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> numArrowRight [ ^ Character codePoint: 16rE005A asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> numArrowUp [ ^ Character codePoint: 16rE0059 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> numComma [ ^ Character codePoint: 16rE0026 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> numDelete [ ^ Character codePoint: 16rE005D asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> numDot [ ^ Character codePoint: 16rE0028 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> numEnd [ ^ Character codePoint: 16rE0056 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> numHome [ ^ Character codePoint: 16rE0057 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> numInsert [ ^ Character codePoint: 16rE005C asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> numMinus [ ^ Character codePoint: 16rE0027 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> numPagedown [ ^ Character codePoint: 16rE0055 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> numPageup [ ^ Character codePoint: 16rE0054 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> numPlus [ ^ Character codePoint: 16rE0025 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> numSlash [ ^ Character codePoint: 16rE0029 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> numStar [ ^ Character codePoint: 16rE0024 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> pagedown [ ^ Character codePoint: 16rE00F asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> pageup [ ^ Character codePoint: 16rE00E asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> pause [ ^ Character codePoint: 16rE00B asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> return [ ^ Character codePoint: 16rE006 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> semicolon [ ^ Character codePoint: 16rE0018 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> shiftLeft [ ^ Character codePoint: 16rE008 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> shiftRight [ ^ Character codePoint: 16rE0050 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> space [ ^ Character codePoint: 16rE00D asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> tab [ ^ Character codePoint: 16rE004 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> unidentified [ ^ Character codePoint: 16rE000 asString ] -{ #category : #'accessing - token' } +{ #category : #constants } WDKeys class >> zenkakuhankaku [ ^ Character codePoint: 16rE0040 asString ] diff --git a/src/WebDriver/WDLocationStrategy.class.st b/src/WebDriver/WDLocationStrategy.class.st index 6b3f1a1..5575173 100644 --- a/src/WebDriver/WDLocationStrategy.class.st +++ b/src/WebDriver/WDLocationStrategy.class.st @@ -7,27 +7,27 @@ Class { #category : #'WebDriver-Constants' } -{ #category : #'as yet unclassified' } +{ #category : #constants } WDLocationStrategy class >> cssSelector [ ^'css selector'. ] -{ #category : #'as yet unclassified' } +{ #category : #constants } WDLocationStrategy class >> linkText [ ^'link text'. ] -{ #category : #'as yet unclassified' } +{ #category : #constants } WDLocationStrategy class >> partialLinkText [ ^'partial link text'. ] -{ #category : #accessing } +{ #category : #constants } WDLocationStrategy class >> tagName [ ^'tag name'. ] -{ #category : #'as yet unclassified' } +{ #category : #constants } WDLocationStrategy class >> xPath [ ^'xpath'. ] diff --git a/src/WebDriver/WebDriver.class.st b/src/WebDriver/WebDriver.class.st index a270790..bb2ed2b 100644 --- a/src/WebDriver/WebDriver.class.st +++ b/src/WebDriver/WebDriver.class.st @@ -206,6 +206,11 @@ WebDriver >> session: capabilities [ ^ sessionId ] ] +{ #category : #'private - utilities' } +WebDriver >> sessionId [ + ^ sessionId +] + { #category : #accessing } WebDriver >> source [