...

Source file src/github.com/playwright-community/playwright-go/tests/input_test.go

Documentation: github.com/playwright-community/playwright-go/tests

     1  package playwright_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/playwright-community/playwright-go"
     7  	"github.com/stretchr/testify/require"
     8  )
     9  
    10  func TestMouseMove(t *testing.T) {
    11  	BeforeEach(t)
    12  	defer AfterEach(t)
    13  	if isWebKit {
    14  		_, err := page.Evaluate(`() => new Promise(requestAnimationFrame)`)
    15  		require.NoError(t, err)
    16  	}
    17  	require.NoError(t, page.Mouse().Move(100, 100))
    18  	_, err := page.Evaluate(`() => {
    19      window['result'] = [];
    20      document.addEventListener('mousemove', event => {
    21        window['result'].push([event.clientX, event.clientY]);
    22      });
    23    }`)
    24  	require.NoError(t, err)
    25  	require.NoError(t, page.Mouse().Move(200, 300, playwright.MouseMoveOptions{
    26  		Steps: playwright.Int(5),
    27  	}))
    28  	result, err := page.Evaluate("result")
    29  	require.NoError(t, err)
    30  	require.Equal(t, []interface{}([]interface{}{[]interface{}{120, 140}, []interface{}{140, 180}, []interface{}{160, 220}, []interface{}{180, 260}, []interface{}{200, 300}}), result)
    31  }
    32  
    33  func TestMouseDown(t *testing.T) {
    34  	BeforeEach(t)
    35  	defer AfterEach(t)
    36  	_, err := page.Goto(server.EMPTY_PAGE)
    37  	require.NoError(t, err)
    38  	require.NoError(t, page.SetContent(`<button onmousedown="window.clicked=true"/>`))
    39  	require.NoError(t, page.Hover("button"))
    40  	require.NoError(t, page.Mouse().Down())
    41  	result, err := page.Evaluate("window.clicked")
    42  	require.NoError(t, err)
    43  	require.True(t, result.(bool))
    44  }
    45  
    46  func TestMouseUp(t *testing.T) {
    47  	BeforeEach(t)
    48  	defer AfterEach(t)
    49  	_, err := page.Goto(server.EMPTY_PAGE)
    50  	require.NoError(t, err)
    51  	require.NoError(t, page.SetContent(`<button onmouseup="window.clicked=true"/>`))
    52  	require.NoError(t, page.Hover("button"))
    53  	require.NoError(t, page.Mouse().Down())
    54  	require.NoError(t, page.Mouse().Up())
    55  	result, err := page.Evaluate("window.clicked")
    56  	require.NoError(t, err)
    57  	require.True(t, result.(bool))
    58  }
    59  
    60  func TestMouseClick(t *testing.T) {
    61  	BeforeEach(t)
    62  	defer AfterEach(t)
    63  	_, err := page.Goto(server.EMPTY_PAGE)
    64  	require.NoError(t, err)
    65  	require.NoError(t, page.SetContent(`<button onclick="window.clicked=true" style="width: 500px; height: 500px;"/>`))
    66  	require.NoError(t, page.Hover("button"))
    67  	require.NoError(t, page.Mouse().Click(100, 100))
    68  	result, err := page.Evaluate("window.clicked")
    69  	require.NoError(t, err)
    70  	require.True(t, result.(bool))
    71  }
    72  
    73  func TestMouseDblclick(t *testing.T) {
    74  	BeforeEach(t)
    75  	defer AfterEach(t)
    76  	_, err := page.Goto(server.EMPTY_PAGE)
    77  	require.NoError(t, err)
    78  	require.NoError(t, page.SetContent(`<button ondblclick="window.clicked=true" style="width: 500px; height: 500px;"/>`))
    79  	require.NoError(t, page.Hover("button"))
    80  	require.NoError(t, page.Mouse().Dblclick(100, 100))
    81  	result, err := page.Evaluate("window.clicked")
    82  	require.NoError(t, err)
    83  	require.True(t, result.(bool))
    84  }
    85  
    86  func TestKeyboardDown(t *testing.T) {
    87  	BeforeEach(t)
    88  	defer AfterEach(t)
    89  	_, err := page.Goto(server.EMPTY_PAGE)
    90  	require.NoError(t, err)
    91  	require.NoError(t, page.SetContent(`<input onkeydown="window.clicked=true"/>`))
    92  	require.NoError(t, page.Click("input"))
    93  	require.NoError(t, page.Keyboard().Down("Enter"))
    94  	result, err := page.Evaluate("window.clicked")
    95  	require.NoError(t, err)
    96  	require.True(t, result.(bool))
    97  }
    98  
    99  func TestKeyboardUp(t *testing.T) {
   100  	BeforeEach(t)
   101  	defer AfterEach(t)
   102  	_, err := page.Goto(server.EMPTY_PAGE)
   103  	require.NoError(t, err)
   104  	require.NoError(t, page.SetContent(`<input onkeyup="window.clicked=true"/>`))
   105  	require.NoError(t, page.Click("input"))
   106  	require.NoError(t, page.Keyboard().Up("Enter"))
   107  	result, err := page.Evaluate("window.clicked")
   108  	require.NoError(t, err)
   109  	require.True(t, result.(bool))
   110  }
   111  
   112  func TestKeyboardInsertText(t *testing.T) {
   113  	BeforeEach(t)
   114  	defer AfterEach(t)
   115  	_, err := page.Goto(server.EMPTY_PAGE)
   116  	require.NoError(t, err)
   117  	require.NoError(t, page.SetContent(`<input oninput="window.clicked=true"/>`))
   118  	require.NoError(t, page.Click("input"))
   119  	require.NoError(t, page.Keyboard().InsertText("abc123"))
   120  	result, err := page.Evaluate("window.clicked")
   121  	require.NoError(t, err)
   122  	require.True(t, result.(bool))
   123  }
   124  
   125  func TestKeyboardType(t *testing.T) {
   126  	BeforeEach(t)
   127  	defer AfterEach(t)
   128  	_, err := page.Goto(server.EMPTY_PAGE)
   129  	require.NoError(t, err)
   130  	require.NoError(t, page.SetContent(`<input oninput="window.clicked=true"/>`))
   131  	require.NoError(t, page.Click("input"))
   132  	require.NoError(t, page.Keyboard().Type("abc123"))
   133  	result, err := page.Evaluate("window.clicked")
   134  	require.NoError(t, err)
   135  	require.True(t, result.(bool))
   136  }
   137  
   138  func TestElementHandleType(t *testing.T) {
   139  	BeforeEach(t)
   140  	defer AfterEach(t)
   141  	_, err := page.Goto(server.EMPTY_PAGE)
   142  	require.NoError(t, err)
   143  	require.NoError(t, page.SetContent(`<input oninput="window.clicked=true"/>`))
   144  	require.NoError(t, page.Click("input"))
   145  	inputElement, err := page.QuerySelector("input")
   146  	require.NoError(t, err)
   147  	require.NoError(t, inputElement.Type("abc123"))
   148  	result, err := page.Evaluate("window.clicked")
   149  	require.NoError(t, err)
   150  	require.True(t, result.(bool))
   151  }
   152  
   153  func TestElementHandleFill(t *testing.T) {
   154  	BeforeEach(t)
   155  	defer AfterEach(t)
   156  	_, err := page.Goto(server.EMPTY_PAGE)
   157  	require.NoError(t, err)
   158  	require.NoError(t, page.SetContent(`<input oninput="window.clicked=true"/>`))
   159  	require.NoError(t, page.Click("input"))
   160  	inputElement, err := page.QuerySelector("input")
   161  	require.NoError(t, err)
   162  	require.NoError(t, inputElement.Fill("abc123"))
   163  	result, err := page.Evaluate("window.clicked")
   164  	require.NoError(t, err)
   165  	require.True(t, result.(bool))
   166  }
   167  
   168  func TestKeyboardInsertPress(t *testing.T) {
   169  	BeforeEach(t)
   170  	defer AfterEach(t)
   171  	_, err := page.Goto(server.EMPTY_PAGE)
   172  	require.NoError(t, err)
   173  	require.NoError(t, page.SetContent(`<input onkeydown="window.clicked=true"/>`))
   174  	require.NoError(t, page.Click("input"))
   175  	require.NoError(t, page.Keyboard().Press("A"))
   176  	result, err := page.Evaluate("window.clicked")
   177  	require.NoError(t, err)
   178  	require.True(t, result.(bool))
   179  }
   180  
   181  func TestElementHandlePress(t *testing.T) {
   182  	BeforeEach(t)
   183  	defer AfterEach(t)
   184  	_, err := page.Goto(server.EMPTY_PAGE)
   185  	require.NoError(t, err)
   186  	require.NoError(t, page.SetContent(`<input onkeydown="window.clicked=true"/>`))
   187  	require.NoError(t, page.Click("input"))
   188  	inputElement, err := page.QuerySelector("input")
   189  	require.NoError(t, err)
   190  	require.NoError(t, inputElement.Press("A"))
   191  	result, err := page.Evaluate("window.clicked")
   192  	require.NoError(t, err)
   193  	require.True(t, result.(bool))
   194  }
   195  
   196  func TestTouchscreenTap(t *testing.T) {
   197  	BeforeEach(t)
   198  	defer AfterEach(t)
   199  	_, err := page.Goto(server.EMPTY_PAGE)
   200  	require.NoError(t, err)
   201  	require.NoError(t, page.SetContent(`<button onclick="window.clicked=true" style="width: 500px; height: 500px;"/>`))
   202  	require.NoError(t, page.Touchscreen().Tap(100, 100))
   203  	result, err := page.Evaluate("window.clicked")
   204  	require.NoError(t, err)
   205  	require.True(t, result.(bool))
   206  }
   207  

View as plain text