1
0
mirror of https://github.com/MontFerret/ferret.git synced 2024-12-16 11:37:36 +02:00
ferret/pkg/drivers/cdp/templates/scroll.go
Tim Voronov 8e13cf9134
Refactored input and select (#331)
* Refactored input and select

* WIP

* Fixed serialization

* Fixed scriolling

* Fixed XPath result handling

* Renamed some methods
2019-07-16 18:17:42 -04:00

69 lines
1010 B
Go

package templates
import (
"fmt"
"github.com/MontFerret/ferret/pkg/drivers"
)
const (
scrollTopTemplate = `
window.scrollTo({
left: 0,
top: 0,
behavior: 'instant'
});
`
scrollBottomTemplate = `
window.scrollTo({
left: 0,
top: window.document.body.scrollHeight,
behavior: 'instant'
});
`
scrollIntoViewTemplate = `
(el) => {
el.scrollIntoView({
behavior: 'instant'
});
return true;
}
`
)
func Scroll(x, y string) string {
return fmt.Sprintf(`
window.scrollBy(%s, %s);
`, x, y)
}
func ScrollTop() string {
return scrollTopTemplate
}
func ScrollBottom() string {
return scrollBottomTemplate
}
func ScrollIntoView() string {
return scrollIntoViewTemplate
}
func ScrollIntoViewBySelector(selector string) string {
return fmt.Sprintf(`
const el = document.querySelector('%s');
if (el == null) {
throw new Error('%s');
}
el.scrollIntoView({
behavior: 'instant'
});
return true;
`, selector, drivers.ErrNotFound)
}