无法在 Selenium 中的模式弹出 window 上定位元素
Not able to locate element on a modal pop up window in Selenium
我正在使用 Selenium Webdriver 自动化网页。我无法使用简单的元素定位器方法单击模式弹出按钮 window。
示例:
- 打开www.walmart.com
- 在搜索框中输入电视。
- select 一些电视然后点击 "Add to Cart"
- 现在 "Checkout" 按钮所在的位置会弹出 window。我需要点击这个 "checkout" 按钮。
我尝试了 switchTo() window句柄,我尝试了 switchTo() 框架,但没有任何效果。
此网站速度很慢并且存在加载问题。因此,我建议您对每个 findElement 使用 Explicit wait。我编写了以下脚本并且运行良好
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("http://www.walmart.com/");
WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("[placeholder='Search']")))
.sendKeys("TV");
driver.findElement(By.cssSelector(".searchbar-submit.js-searchbar-submit")).click();
wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.cssSelector("#tile-container>div>a>img")))
.get(0).click();
wait.until(ExpectedConditions.elementToBeClickable(By.id("WMItemAddToCartBtn"))).click();
wait.until(ExpectedConditions.elementToBeClickable(By.id("PACCheckoutBtn"))).click();
我正在使用 Selenium Webdriver 自动化网页。我无法使用简单的元素定位器方法单击模式弹出按钮 window。
示例:
- 打开www.walmart.com
- 在搜索框中输入电视。
- select 一些电视然后点击 "Add to Cart"
- 现在 "Checkout" 按钮所在的位置会弹出 window。我需要点击这个 "checkout" 按钮。
我尝试了 switchTo() window句柄,我尝试了 switchTo() 框架,但没有任何效果。
此网站速度很慢并且存在加载问题。因此,我建议您对每个 findElement 使用 Explicit wait。我编写了以下脚本并且运行良好
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("http://www.walmart.com/");
WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("[placeholder='Search']")))
.sendKeys("TV");
driver.findElement(By.cssSelector(".searchbar-submit.js-searchbar-submit")).click();
wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.cssSelector("#tile-container>div>a>img")))
.get(0).click();
wait.until(ExpectedConditions.elementToBeClickable(By.id("WMItemAddToCartBtn"))).click();
wait.until(ExpectedConditions.elementToBeClickable(By.id("PACCheckoutBtn"))).click();