diff --git a/src/WebDriver-Tests/WDElementTest.class.st b/src/WebDriver-Tests/WDElementTest.class.st index 88bb53c..33328aa 100644 --- a/src/WebDriver-Tests/WDElementTest.class.st +++ b/src/WebDriver-Tests/WDElementTest.class.st @@ -23,3 +23,10 @@ WDElementTest >> tearDown [ driver finalize. super tearDown. ] + +{ #category : #tests } +WDElementTest >> testAttributeReading [ + | element | + driver url: ''. + element := driver findElement: '' using: ''. +] diff --git a/src/WebDriver-Tests/WebDriverTest.class.st b/src/WebDriver-Tests/WebDriverTest.class.st index 5f410db..10c5edd 100644 --- a/src/WebDriver-Tests/WebDriverTest.class.st +++ b/src/WebDriver-Tests/WebDriverTest.class.st @@ -24,6 +24,33 @@ WebDriverTest >> tearDown [ super tearDown. ] +{ #category : #tests } +WebDriverTest >> testFindElementInvalidCSSSelector [ + self + should: [ webdriver url: 'https://ddg.co'; findElement: '' using: WDLocationStrategy cssSelector ] + raise: WDInvalidSelector. +] + +{ #category : #tests } +WebDriverTest >> testFindElementValid [ + self assert: ((webdriver url: 'https://ddg.co'; findElement: '.logo_homepage' using: WDLocationStrategy cssSelector) isMemberOf: WDElement). +] + +{ #category : #tests } +WebDriverTest >> testFindElementsInvalidCSSSelector [ + self + should: [ webdriver url: 'https://ddg.co'; findElements: '' using: WDLocationStrategy cssSelector ] + raise: WDInvalidSelector. +] + +{ #category : #tests } +WebDriverTest >> testFindElementsValid [ + | result | + result := webdriver url: 'https://ddg.co'; + findElements: '.badge-link__bullet' using: WDLocationStrategy cssSelector. + self assert: result size equals: 3. +] + { #category : #tests } WebDriverTest >> testGetTitle [ self assert: (webdriver url: 'https://cern.ch'; title) equals: 'Home | CERN'. diff --git a/src/WebDriver/WDElement.class.st b/src/WebDriver/WDElement.class.st index 6a8fc90..12c9a2b 100644 --- a/src/WebDriver/WDElement.class.st +++ b/src/WebDriver/WDElement.class.st @@ -52,6 +52,22 @@ WDElement >> click [ using: #POST ] +{ #category : #testing } +WDElement >> computedLabel [ + ^ self driver + sendWithSession: { } + to: 'element/' , element , '/computedlabel' + using: #GET +] + +{ #category : #testing } +WDElement >> computedRole [ + ^ self driver + sendWithSession: { } + to: 'element/' , element , '/computedrole' + using: #GET +] + { #category : #accessing } WDElement >> driver [ @@ -76,6 +92,30 @@ WDElement >> element: anObject [ element := anObject ] +{ #category : #testing } +WDElement >> isEnabled [ + ^ self driver + sendWithSession: { } + to: 'element/' , element , '/enabled' + using: #GET +] + +{ #category : #testing } +WDElement >> isSelected [ + ^ self driver + sendWithSession: { } + to: 'element/' , element , '/selected' + using: #GET +] + +{ #category : #testing } +WDElement >> name [ + ^ self driver + sendWithSession: { } + to: 'element/' , element , '/name' + using: #GET +] + { #category : #accessing } WDElement >> property: attr [ @@ -87,8 +127,24 @@ WDElement >> property: attr [ using: #GET ] +{ #category : #testing } +WDElement >> rect [ + ^ self driver + sendWithSession: { } + to: 'element/' , element , '/rect' + using: #GET +] + +{ #category : #testing } +WDElement >> text [ + ^ self driver + sendWithSession: { } + to: 'element/' , element , '/text' + using: #GET +] + { #category : #simulating } -WDElement >> type: text [ +WDElement >> value: text [ self driver sendWithSession: { (#text -> text) }