我正在使用Selenium Webdriver自动执行网页。我无法使用简单元素定位器方法在模式弹出窗口中单击按钮。
例:
我尝试了switchTo()窗口句柄,也尝试了switchTo()框架,但没有任何效果。
该网站速度非常慢,并且存在加载问题。因此,我建议您对每个findElement 使用Explicit等待。我写了以下脚本,效果很好
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();