これはセレンとクリックに関するもう1つの質問です。私は約2日間苦労しており、それを働かせることはできません - 私はインターネットで回答を試みましたが、今私は協調した努力が必要です。前もって感謝します!!セレン、Java、スクリーンショット、クリックボタンに関する問題
私は次のサイトhttp://144.76.109.38/peTESTで作業しています。これは、ステップをリトレースする場合に役立ちます。
ログインフォームに必要事項を記入し、[ログイン]をクリックして回答ページを表示します。ここで
は私のコードです:
import java.io.File;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.Writer;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.support.ui.Select;
public class toJava {
public static void main(String[] args) {
System.setProperty("webdriver.gecko.driver","/home/tallen/RTI/lib/geckodriver/geckodriver");
WebDriver driver = new FirefoxDriver();
driver.get("http:144.76.109.38/peTEST");
File SF2 = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
try{
FileUtils.copyFile(SF2, new File("./out-004.png"));
}catch(IOException ioe){
System.out.println("There was an IO error");
}
driver.findElement(By.id("user_login_name")).click();
WebElement WE4 = driver.findElement(By.id("user_login_name"));
WE4.sendKeys("Superuser");
driver.findElement(By.id("user_password")).click();
WebElement WE6 = driver.findElement(By.id("user_password"));
WE6.sendKeys("Jkerouac1!");
WebElement WE7 = driver.findElement(By.xpath(".//*[@type='button'][@onclick='login()'][@value='Login']"));
WE7.sendKeys(Keys.ENTER);
File SF8 = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
try{
FileUtils.copyFile(SF8, new File("./out-005.png"));
}catch(IOException ioe){
System.out.println("There was an IO error");
}
driver.quit();
}
}
だから基本的に私は、ページを開く、ユーザー名とパスワードを入力するスクリーンショットを取って、ログインをクリックして、別のスクリーンショットを取っています。
これに対するコンパイルと実行はクリーンです。例外で問題はありません。私も2つのスクリーンショットを取得します。最初のスクリーンショットはログインページを示しています。データは入力されていません。 2番目のスクリーンショットはログインページが表示され、クリックしたいボタンは表示されますが、正常にログインすると表示される「ようこそページ」は表示されません。スクリーンショットにはボタンが表示されています。 。あなたがSeleniumで最初に試してみたい場合に備えて、私はスクリプトにログイン情報を与えています。
なぜログインボタンがクリックされていないのですか?私は、クリックしたり、実行したりして、役に立たなかった。私は暗黙の待ちを入れようとしました - まだ何もありません。
私は先進的な使用法の相互作用を試みましたが、まだ何もしていません。
私はSeleniumとJavaにはかなり新しく、それは私が見落としているだけの愚かであることを望んでいます。しかし、Webを見て、解決策は役に立たないだけです。私は私のセレンライブラリ
のDebian-70-Wheezyに-64-LAMPに取り組んでいます
は、クライアントを組み合わせ-3.0.1-nodeps.jar
マイGeckodriverは、v0.11.1-LINUX64
あるからですありがとうございました!
ログインボタンをクリックする声明が 'WE7.sendKeys(Keys.ENTER)'であると仮定すると、なぜボタンの上に 'click()'を呼び出すのではなく、 user_login_name'と 'user_password'フィールドはありますか?私はそれが間違っているとは必ずしも言いませんが(私は知らないし、チェックしませんでした)、代わりに 'click()'します。また、なぜ 'user_login_name'と' user_password'フィールドで 'click()'を呼びますか?ちょうどそれらに 'sendKeys'を送ります。 – SantiBailors
こんにちはSantiBailors - これは単なる進化です。私はclick()を試したが、これはうまくいかなかった。私はこのヒントがネット上の他の場所に掲載されているのを見たので、試してみました。それは動作します。つまり、問題は発生しませんが、スクリーンショットはまだ間違っています。つまり、クリックに失敗しました。ありがとう!!! –