リンクでもある "My account"というテキスト値を返そうとしています。クラスのテキスト値を返そうとしています
ウェブサイトにログインしているかどうかを確認するには、文字列をチェックする必要があります。
私はすべての通常の方法(xpath、css、hrefで)を試みましたが、成功しませんでした。私は明らかに何か間違っています。
誰かがこれで私を助けることができますか?
うまくいけば、html画像は私が達成しようとしていることを示してくれるでしょう。 (表示するコードをクリックしてください)
ここに私がサイトにログインするために使用しているコードです。ログインすると、「My account」というテキストがhrefとして表示されます。私はその後、スプレッドシートに書き込むためにhrefテキストを返したいと思います。
を参照してくださいコードスニペットと私はHREFテキスト文字列を返すようにしようとしたメソッドの一部(私は...より多くのを試してみましたが、didntの仕事として今それらを削除している)
また結果コードを参照してください。
WebElement element_search1 = driver.findElement(By.xpath("//*[@id='login']"));
driver.findElement(By.xpath("//*[@id='login']")).click();
WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.titleContains("Login - mysite.com"));;
WebElement element_search2 = driver.findElement(By.xpath("//*[@id='subscriber_email']"));
driver.findElement(By.xpath("//*[@id='subscriber_email']"));
element_search2.clear();
element_search2.sendKeys("[email protected]");
element_search2.sendKeys(Keys.TAB);
// find and enter password
WebElement element_search3 = driver.findElement(By.xpath("//*[@id='subscriber_password']"));
driver.findElement(By.xpath("//*[@id='subscriber_password']"));
element_search3.clear();
element_search3.sendKeys("password");
driver.findElement(By.name("commit")).click();
System.out.println(driver.findElement(By.linkText("My account")).getAttribute("class"));
System.out.println(driver.findElement(By.linkText("My account")).getText());
結果
Exception in thread "main" org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"link text","selector":"My account"}
それは上の失敗:System.out.println(driver.findElement(By.linkText("My account")).getAttribute("class"))
あなたがここで求めていることはあまり明確ではありません... 私たちがクラスを持っていればそれは良いでしょう。 –
こんにちは、覚えて、StackOverflowへようこそ。ヘルプページ、特に[ここではどのトピックについて聞かせていただけますか?](http://stackoverflow.com/help/on-topic)と[質問しないでください。」](http://stackoverflow.com/help/dont-ask)。さらに重要なことは、[最小限の、完全で検証可能な例](http://stackoverflow.com/help/mcve)の提供方法を学んでください。 –
は、試したすべての通常の方法とその出力を表示します。 –