自動テストでは、ユーザーがマウスのポインタを何回かクリックしてからマウスボタンを放して、テキストをクリックしてシミュレートしようとしています。Java Selenium Webdriverを使って人がテキストを選択するシミュレーション
私はそれをユーザーとして実行すると、テキストが選択されている(ハイライト表示されている)ことを確認し、選択がマウスポインタで移動します。
セレンと一緒にすると、何も見ません。
ここにサンプルコードがあります。私が取り組んでいるページには、テキストの各単語を囲むスパンタグがあります。したがって、すべての単語には独自のWeb要素があります。 startSelectとendSelectは2つのWebElementsです。
public void doSomeMouseStuff() throws InterruptedException {
Actions actions = new Actions(getDriver());
actions
.moveToElement(startSelect)
.clickAndHold()
.perform();
actions
.moveToElement(endSelect)
.perform();
try {
WebDriverWait wait = new WebDriverWait(getDriver(), 5, 1000);
wait.until(Predicates.<WebDriver> alwaysFalse());
}
catch(TimeoutException e) {
//Ignore the timeout. It's what we *want* to happen.
}
actions
.release()
.perform();
}
私はテキストを選択するためにJavaScriptを注入することを考えましたが、その点は間違っています。後でそのページはマウスのクリックとドラッグで作業を行い、テストはユーザーがクリックしてドラッグしたように見える必要があります。
Webdriverで実際にテキストを選択するようにシミュレートするにはどうすればよいですか?持っているオフセットを取得これらの二つの方法
moveToElement(WebElement toElement, int xOffset, int yOffset)
moveByOffset(int xOffset, int yOffset)
を使用して考える
をしようとする
すべてのアクションを 'actions.moveToElement(startSelect).clickAndHold()。moveToElement(endSelect).release()。perform()'と見て、それが動作している可能性があります。 –
すべてのアクションを1行でもテキストがハイライトされません。 –