アクセスポイントのWeb構成を自動化しようとしています。この間、クリックしたいポップアップ(「はい」と「いいえ」のオーバーレイのようなもの)が表示されます
クリックしようとしているオーバーレイのHTMLコード:
<div id="generic-warning-dialog" class="dialog exclamation text-Orphan" style="">
<div class="warning-content dialog-content text-Orphan">Security Mode is disabled on one or more of your wireless networks. Your network could be open to unauthorized users. Are you sure you wish to proceed?</div>
<div class="dialog-buttons text-Orphan">
<button class="cancel">No</button>
<button class="submit" style="display: block;">Yes</button>
</div>
</div>
私は試した
browser.find_element_by_class_name("submit").click()
しかし、次のエラーが発生します。
例外を発生させる(message、screen、stacktrace)Selenium.common.exceptions.ElementClickInterceptedException:メッセージ:別の要素が要素を覆い隠しているため、要素はポイント(788,636.5)でクリックできません
どのように進めればよいかアドバイスしてもらえますか?私はFirefoxとPythonを使用しています
ポップアップをクリックしようとしていますが、Seleniumが要素をクリックしようとすると、DOMで使用可能ですが、表示されませんである可能性があり、このエラーが発生します。
解決策は、クリックする前に、その要素がクリック可能/表示されるのを待つことです。そのためのC#コードは次のとおりです(Pythonで同等のものを書くことができます):
WaitForElementToBeClickable(By.ClassName("submit"), 20);
browser.FindElement(By.ClassName("submit")).click();
public static void WaitForElementToBeClickable(By by, int timeout)
{
new WebDriverWait(Driver, TimeSpan.FromSeconds(timeout)).Until(ExpectedConditions.ElementToBeClickable(by));
}