mirror of
https://github.com/projectdiscovery/nuclei.git
synced 2025-12-18 04:25:31 +00:00
chore: add new test
This commit is contained in:
parent
4e54a61b65
commit
3386c1c5bd
@ -91,7 +91,10 @@ func (p *Page) WaitVisible(act *Action, out map[string]string) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return element.WaitVisible()
|
||||
if err = element.WaitVisible(); err != nil {
|
||||
return errors.Wrap(err, "could not wait element")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// ActionAddHeader executes a AddHeader action.
|
||||
|
||||
@ -278,3 +278,41 @@ func TestActionHeadersChange(t *testing.T) {
|
||||
|
||||
require.Equal(t, "found", strings.ToLower(strings.TrimSpace(page.Page().MustElement("html").MustText())), "could not set header correctly")
|
||||
}
|
||||
|
||||
func TestActionWaitVisible(t *testing.T) {
|
||||
_ = protocolstate.Init(&types.Options{})
|
||||
|
||||
browser, err := New(&types.Options{ShowBrowser: false})
|
||||
require.Nil(t, err, "could not create browser")
|
||||
defer browser.Close()
|
||||
|
||||
instance, err := browser.NewInstance()
|
||||
require.Nil(t, err, "could not create browser instance")
|
||||
|
||||
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
fmt.Fprintln(w, `
|
||||
<html>
|
||||
<head>
|
||||
<title>Nuclei Test Page</title>
|
||||
</head>
|
||||
<button style="display:none" id="test">Wait for me!</button>
|
||||
<script>
|
||||
setTimeout(() => document.querySelector('#test').style.display = 'block', 1000);
|
||||
</script>
|
||||
</html>`)
|
||||
}))
|
||||
defer ts.Close()
|
||||
|
||||
parsed, err := url.Parse(ts.URL)
|
||||
require.Nil(t, err, "could not parse URL")
|
||||
|
||||
actions := []*Action{
|
||||
{ActionType: "navigate", Data: map[string]string{"url": "{{BaseURL}}"}},
|
||||
{ActionType: "waitvisible", Data: map[string]string{"by": "x", "xpath": "//button[@id='test']"}},
|
||||
}
|
||||
_, page, err := instance.Run(parsed, actions, 20*time.Second)
|
||||
require.Nil(t, err, "could not run page actions")
|
||||
defer page.Close()
|
||||
|
||||
page.Page().MustElement("button").MustWaitVisible()
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user