2016-12-19 23 views
0

Hei。私はセレンを使って自動化されたテストを作成していますが、私はクリックがうまくいかないIEにいくつかの問題がありました。 (ドライバがちょうど凍結し、タイムアウトや何も起こらない共通の問題のように見えます)。Javaセレンクリックオーバーライドまたは独自の作成

回避策として、javascriptエグゼキュータを使用してクリックを行う方法を作成しました。

public static void IEClick(WebElement element) { 
    JavascriptExecutor executor = (JavascriptExecutor) driver; 
    executor.executeScript("arguments[0].click();", element); 
    } 

問題はIEで動作させるためにすべてのテストを書き直さなければならないことです。

@Test 
    public void Simpletest(){ 

    Frontpage.SearchBox.sendKeys("DeadPool"); 
    Frontpage.GOButton.click(); 
    Frontpage.FirstREsult.click();  
    } 

は、これは解決策が、私はこれを処理するためにすべての私のテストをやり直す必要があります。この平均値である

@Test 
     public void Simpletest(){ 
    Frontpage.SearchBox.sendKeys("DeadPool"); 
    IEClick(Frontpage.GOButton); 
    IEClick(Frontpage.FirstREsult); 
} 

に変更する必要があります。どちらかというとあまりにも多すぎるようです。だから、自分のクリックを作成することは可能でしょうか?

理想のソリューションMyClick中で、私はすでに別のブラウザですべてのケースを扱っている

Frontpage.FirstREsult.MyClick(); 

etc.So私はちょうど検索し、私自身のクリックでクリックを置き換えることができます。

答えて

0

1)最初に、あなたが能力のブラウザ名を取得することができますし、ブラウザ

Capabilities caps = ((RemoteWebDriver) driver).getCapabilities(); String browserName = caps.getBrowserName();

2に応じて、jsファイルまたはネイティブクリックを使用して)また、あなたは常に、JSのクリックを使用することができます。それはあなたがネイティブのものを必要とすることができる非常にまれな状況です

関連する問題