我正在嘗試找到一個元素By.cssSelector("#e1")。在這個網站上:
從java中,我嘗試了 By.xPath 和 By.cssSelector 但每次我都得到No such element exception。我還使用了隱式和顯式等待仍然得到相同的例外。
但是,如果我發現使用檢查元素而不是突出顯示該元素。

uj5u.com熱心網友回復:
該元素Salesforce位于iframe您需要切換到iframe第一個才能訪問該元素。
使用WebdriverWait()等待frameToBeAvailableAndSwitchToIt()使用以下定位器來識別。
使用WebdriverWait()等待elementToBeClickable()使用以下定位器來識別。
driver.get("http://ww1.salesfoce.com/")
new WebDriverWait(driver, Duration.ofSeconds(10)).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.cssSelector("#rs>iframe")));
new WebDriverWait(driver, Duration.ofSeconds(10)).until(ExpectedConditions.elementToBeClickable(By.xpath("//span[text()='Salesforce']"))).click();
uj5u.com熱心網友回復:
文本為Salesforce的元素位于<iframe>

解決方案
要在網站中單擊帶有文本作為Salesforce的元素,您必須:
- 為所需的frameToBeAvailableAndSwitchToIt誘導WebDriverWait。
- 為所需的elementToBeClickable誘導WebDriverWait。
- 您可以使用以下任一定位器策略:
使用xpath:
driver.get("http://ww1.salesfoce.com/"); new WebDriverWait(driver, Duration.ofSeconds(10)).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.xpath("//iframe[starts-with(@src, 'https://www.google.com/afs/ads?adtest')]"))); new WebDriverWait(driver, Duration.ofSeconds(10)).until(ExpectedConditions.elementToBeClickable(By.xpath("//span[text()='Salesforce']"))).click();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/468306.html
標籤:爪哇 硒 硒网络驱动程序 css 选择器 网络驱动程序等待
上一篇:從webTable列印特定列值
