我正在使用 Selenium Webdriver 自动化网页。我无法使用简单的元素定位器方法单击模式弹出窗口的按钮。
Example:
- 打开 www.walmart.com
- 在搜索框中输入电视。
- 选择一些电视并单击“添加到购物车”
- 现在,“结帐”按钮所在的位置出现一个弹出窗口。我需要点击这个“结帐”按钮。
我尝试了 switchTo() 窗口句柄,尝试了 switchTo() 框架,但没有任何效果。
该网站速度非常慢并且存在加载问题。所以,我建议你使用显式等待对于每个 findElement。我编写了以下脚本并且运行良好
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();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)