1
- const { Builder} = require ( 'selenium-webdriver' ) ;
1
+ const { Builder, By } = require ( 'selenium-webdriver' ) ;
2
2
const chrome = require ( 'selenium-webdriver/chrome' ) ;
3
3
const assert = require ( "node:assert" ) ;
4
4
let opts = new chrome . Options ( ) ;
5
5
opts . addArguments ( '--headless' ) ;
6
-
7
6
let startIndex = 0
8
7
let endIndex = 5
9
8
let pdfMagicNumber = 'JVBER'
9
+ let imgMagicNumber = 'iVBOR'
10
10
let base64Code
11
11
12
12
describe ( 'Interactions - Windows' , function ( ) {
13
13
let driver ;
14
-
15
14
before ( async function ( ) {
16
15
driver = await new Builder ( ) . forBrowser ( 'chrome' ) . setChromeOptions ( opts ) . build ( ) ;
17
16
} ) ;
18
17
19
18
after ( async ( ) => await driver . quit ( ) ) ;
20
19
21
20
it ( 'Should be able to print page to pdf' , async function ( ) {
21
+
22
22
await driver . get ( 'https://www.selenium.dev/selenium/web/alerts.html' ) ;
23
23
let base64 = await driver . printPage ( { pageRanges : [ "1-2" ] } ) ;
24
24
// page can be saved as a PDF as below
@@ -27,4 +27,24 @@ describe('Interactions - Windows', function () {
27
27
base64Code = base64 . slice ( startIndex , endIndex )
28
28
assert . strictEqual ( base64Code , pdfMagicNumber )
29
29
} ) ;
30
+
31
+ it ( 'Should be able to get text using executeScript' , async function ( ) {
32
+ await driver . get ( 'https://www.selenium.dev/selenium/web/javascriptPage.html' ) ;
33
+ // Stores the header element
34
+ let header = await driver . findElement ( By . css ( 'h1' ) ) ;
35
+
36
+ // Executing JavaScript to capture innerText of header element
37
+ let text = await driver . executeScript ( 'return arguments[0].innerText' , header ) ;
38
+ assert . strictEqual ( text , `Type Stuff` )
39
+ } ) ;
40
+
41
+ it ( 'Should be able to take Element Screenshot' , async function ( ) {
42
+ await driver . get ( 'https://www.selenium.dev/selenium/web/javascriptPage.html' ) ;
43
+
44
+ let header = await driver . findElement ( By . css ( 'h1' ) ) ;
45
+ // Captures the element screenshot
46
+ let encodedString = await header . takeScreenshot ( true ) ;
47
+ base64Code = encodedString . slice ( startIndex , endIndex )
48
+ assert . strictEqual ( base64Code , imgMagicNumber )
49
+ } ) ;
30
50
} ) ;
0 commit comments