web-dev-qa-db-ja.com

Seleniumを使用してhrefリンクをクリックする方法

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ミリ秒と対話できません。

リンクが表示され、ページが完全にロードされます。私のコードの何が問題なのかわかりません。

16
Psl
 webDriver.findElement(By.xpath("//a[@href='/docs/configuration']")).click();

上記の行は正常に機能します。 hrefの後にスペースを削除してください。

その要素がページに表示されているか、要素が表示されていない場合は、ページを下にスクロールしてクリックアクションを実行してください。

21
Saritha G

つかいます

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);

詳細な回答については、 この投稿を表示

9
Arjit

このような要素には、明示的なwaitを使用します。

WebDriverWait wait1 = new WebDriverWait(driver, 500);
wait1.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("path of element"))).click();
4
Juhil Somaiya

Actionクラスを使用して要素に到達してみてください

Actions action = new Actions(driver);
action.MoveToElement(driver.findElement(By.xpath("//a[text()='AppConfiguration']")));
action.Perform();
1
Salman Arshad

aタグが隠されているようです。 Seleniumは隠された要素と対話できないことを忘れないでください。その場合、Javascriptのみがオプションです。

By css = By.cssSelector("a[href='/docs/configuration']");
WebElement element = driver.findElement(css);
((JavascriptExecutor)driver).executeScript("arguments[0].click();" , element);
0
Saifur

次の方法を使用できます。

リンクの場合、linkText();を使用すると、他のロケーターよりも効果的です。

driver.findElement(By.linkText("App Configuration")).click();
0
Nitinkumar

これは難しい質問です。以下の手順に従ってください:

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);

0
user11905979