SeleniumとJavaで提供されているHTMLのように[続行]と表示されているボタンをクリックする方法は?

添付のポップアップウィンドウ画面で[続行]ボタンをクリックしようとしましたが、通常のセレンの "クリック"が機能しません。このポップアップウィンドウで[続行]ボタンをクリックする方法を教えてください?

enter image description here

ボタンのHTML:

<button class="oval-btn last-popup-btn startang teal track-564677" 
data-track="{"loc":"popup","nm":"tpg-tool-start-popup"}">Continue</button>
2
フレームの内側にあるか確認する
追加された 著者 murali selenium,
スタックトレースを確認または更新するためのURLを指定してください。
追加された 著者 Rajagopalan,
エラースタックトレースで質問を更新してください。
追加された 著者 cruisepandey,
これまでに何を試しましたか?どの例外がありますか。
追加された 著者 Andrei Suvorkov,

4 答え

一致する要素が見つからない場合は、NoSuchElementExceptionのインスタンスがスローされます。

try {
    WebElement popUp = driver.findElement(By./**your expression**/);
    popUp.click();  
} catch(NoSuchElementException | StaleElementReferenceException e) {
    log.debug("Error to click the pop-up. Reason: " + e.toString());
}
1
追加された

HTML に従って、テキストを続行にして要素の click()を呼び出すために共有したので、 WebDriverWait 要素をクリック可能にするにはem>を使用し、次のいずれかの解決策を使用できます。

  • cssSelector:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("button.oval-btn.last-popup-btn.startang.teal"))).click();
    
  • xpath:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[contains(@class,'track-')][contains(.,'Continue')]"))).click();
    
0
追加された

まず、これがポップアップかiframeかを確認してください。 iframeの場合は、まずそれに切り替えてからクリックアクションを実行します。

通常のクリックでうまくいかない場合は、JavascriptExecutorまたはActionsクラスを使用できます。 Actionsクラスのクリックメソッドを使う:

WebElement element = driver.findElement(By.xpath("//button[contains(.,'Continue')]"));

public static void actionClick(WebDriver driver, WebElement element) {
        Actions actions = new Actions(driver);
        actions.moveToElement(element).click().build().perform();
    }

JavacsriptExecutorメソッドを使う:

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

あなたに役立つことを願っています:)

0
追加された

ボタンを押す前に、ページがロードされたかどうかも確認する必要があります。

  JavascriptExecutor executor =(JavascriptExecutor)ドライバ。
   executor.executeScript( "return document.readyState")。toString()。equals( "complete");
 

JavascriptExecutorを使用してプレスボタンを追加します。

  JavascriptExecutor executor =(JavascriptExecutor)ドライバ。
   executor.executeScript( "arguments [0] .click();"、driver.findElement(By .// yourXPath //););
 
0
追加された