无法在Selenium中的模式弹出窗口上找到元素

名字

我正在使用Selenium Webdriver自动执行网页。我无法使用简单元素定位器方法在模式弹出窗口中单击按钮。

例子:

  • 打开www.walmart.com
  • 在搜索框中输入电视。
  • 选择一些电视,然后单击“添加到购物车”
  • 现在出现一个弹出窗口,其中有“签出”按钮。我需要点击此“结帐”按钮。

我尝试了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();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章