htmlhref
リンクがあります
<a href="/docs/configuration">App Configuration</a>
seleniumを使用して、リンクをクリックする必要があります。現在、私は以下のコードを使用しています-
Driver.findElement(By.xpath("//a[text()='App Configuration']")).click();
しかし、それはページにリダイレクトしていません。以下のコードも試しました-
Driver.findElement(By.xpath(//a[@href ='/docs/configuration']")).click();
しかし、これは例外の下に投げています-
org.openqa.Selenium.ElementNotVisibleException:要素は現在表示されていないため、コマンドの継続時間またはタイムアウト:13ミリ秒と対話できません。
リンクが表示され、ページが完全にロードされます。私のコードの何が問題なのかわかりません。
webDriver.findElement(By.xpath("//a[@href='/docs/configuration']")).click();
上記の行は正常に機能します。 hrefの後にスペースを削除してください。
その要素がページに表示されているか、要素が表示されていない場合は、ページを下にスクロールしてクリックアクションを実行してください。
つかいます
driver.findElement(By.linkText("App Configuration")).click()
他のアプローチは
JavascriptLibrary jsLib = new JavascriptLibrary();
jsLib.callEmbeddedSelenium(Selenium, "triggerMouseEventAt", elementToClick,"click", "0,0");
または
((JavascriptExecutor) driver).executeScript("arguments[0].click();", elementToClick);
詳細な回答については、 この投稿を表示
このような要素には、明示的なwait
を使用します。
WebDriverWait wait1 = new WebDriverWait(driver, 500);
wait1.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("path of element"))).click();
Actionクラスを使用して要素に到達してみてください
Actions action = new Actions(driver);
action.MoveToElement(driver.findElement(By.xpath("//a[text()='AppConfiguration']")));
action.Perform();
a
タグが隠されているようです。 Seleniumは隠された要素と対話できないことを忘れないでください。その場合、Javascript
のみがオプションです。
By css = By.cssSelector("a[href='/docs/configuration']");
WebElement element = driver.findElement(css);
((JavascriptExecutor)driver).executeScript("arguments[0].click();" , element);
次の方法を使用できます。
リンクの場合、linkText();
を使用すると、他のロケーターよりも効果的です。
driver.findElement(By.linkText("App Configuration")).click();
これは難しい質問です。以下の手順に従ってください:
driver.get("https://www.google.com");
String gmaillink= driver.findElement(By.xpath("//a[@href='https://mail.google.com/mail/?tab=wm&ogbl']")).getAttribute("href");
System.out.println(gmaillink);
driver.get(gmaillink);