私はPythonの構文についてはわかりませんので、代わりにJavaを使用します。 2つのケースが考えられます。まず、ドライバがページがロードされている間にDOM構造を調べます。もう1つは、WebドライバがDOMのルートを指していないことです。私は通常、ページの読み込みが完了するまで待機し、いくつかの要素を探す前にデフォルトの内容に切り替える待機メソッドを持っています。
まず、WebDriver、Element id、Element名の両方をコンストラクタを介して渡します。次に、私はwaitUntilReady()
特定のタイムアウト内の要素の存在をチェックするロジックを実装しています。
public void waitUntilReady() {
WebDriverWait waiter = new WebDriverWait(getWebDriver(), 30);
waiter.withMessage("\"" + getElementName() + "\" is not ready in 30 seconds")
.until(new Predicate<WebDriver>() {
@Override
public boolean apply(WebDriver input) {
/* isReady() returns true if all elements
* that you need to test are available.
* Note that if you have javascript, you
* should have some hidden field to tell
* you that the whole page has loaded. */
return isReady();
}
});
}
だけでなく、スイッチの前に、その後driver.findElementById( "コンテナ")を使用し、それが動作しない場合、あなたは<body id="container">
を持つことができる要素
WebElement getWebElement() {
WebElement webElement;
try {
getWebDriver().switchTo().defaultContent();
webElement = getWebDriver().findElement(By.id(elementId));
} catch (NoSuchElementException ex) {
getLogger().log(Level.SEVERE, "Element id '" + elementId + "' does not exist");
throw ex;
}
return webElement;
}
を見つけるコンテンツをデフォルトにする。findElementById( "あなたのターゲット要素")
私はJavaに精通していません。私は
であなたが言っていることを得て、次に要素byidメソッドを探します。私は要素内の要素を見つけるためにPython構文が必要です。 – MrGlass