Javaを使用している場合は、古くなった既存の要素をリフレッシュする方法はありますか?何かのように、私は要素を削除して再追加するAngularアプリを持っています。時にはこれは競合状態に遭い、私に陳腐な状態を与えます。私は物事を遅くするために睡眠を避けたいですが、私は500ミリ秒か何かを試みる何かでうまくいくです。私は見つけました。しかし、私は何かを試してみると、オリジナルのXPathがない場合、失効したSelenium要素をリフレッシュするには
driver.findElement(By.xpath(element.foundBy))
しかし、これは動作しません。 xPathが最初に使用されたことがわからない場合、どのように更新すればよいですか?
あなたはWebDriverWaitでExpectedConditionを使用してみました - visibilityOf(WebElement) - https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/ selenium/support/ui/ExpectedConditions.html#visibilityOf-org.openqa.selenium.WebElement- WebDriverWaitコンストラクタでポーリング時間とタイムアウトを設定できます。 – Grasshopper
それはページにありますが、スクロールが必要な場合はどうなりますか?また、要素が古く、前回取得した元のクエリがない場合、要素を更新する方法もあります。 – Jackie
XPATHを文字列に格納して、あなたと一緒に持ち歩いてください。文字列をグローバルレベルで宣言することを意味します。失効する可能性のあるインスタンスを処理する場合は、文字列を使用して新しいWeb要素を作成できます。 –