当前位置: 首页 > 面试题库 >

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

昝枫
2023-03-14
问题内容

我正在使用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();


 类似资料:
  • 所以我正在c#winform中使用硒火狐web驱动程序,我在下面有这段代码来获取弹出窗口的句柄,当您单击“webtraffic_popup_start_button”时显示,它应该获得弹出窗口的句柄,但弹出句柄与当前句柄相同。 任何帮助将不胜感激 这就是弹出式菜单的样子。

  • 我正在使用Selenium从一个在线数据库中提取结果。然而,一旦我选择了我的结果并去导出它们,一个弹出窗口就会出现。通常,我会将框架切换到这个窗口,但它似乎是javascript生成的。当弹出窗口中有元素时,具体名称会不断变化。例如,有一个submitButton id标记。然而,它总是附加着不同结尾。例如,它将是id=“SubmitButton_15BB0B69431”,但下一次它将是完全不同的

  • 问题内容: 如果我的问题听起来很重要,我会事先道歉,我在QA和Selenium中非常陌生。 我正在使用Java和Selenium编写测试,在测试的一个步骤中,当我单击一个按钮应该打开另一个窗口,但Chrome阻止了弹出窗口时,我可以启用Selenium弹出窗口吗? 问题答案: 好了,您需要使用自定义配置初始化,这将禁用该标志来阻止弹出窗口。在此站点上,它的命令行开关是。因此,使用和,您可以使用函数

  • 当点击登录按钮时,弹出窗口显示使用google登录。我需要使用弹出窗口的google按钮访问登录。我已经展示了一些使用方法和方法处理弹出窗口的先前示例。但是无法访问弹出窗口中的元素。 下面的代码显示了无接触异常

  • 我的Selenium Webdriver测试类似于: 点击按钮- 此时,如果输入有效,弹出窗口可能会自动关闭;如果表单出现错误,弹出窗口将保持打开状态。 我的问题是,如果窗口自动关闭,而这正是我关注的窗口句柄,那么到底会发生什么?有没有办法让我检测到窗户已经关上了? 谢啦

  • 完成表单并点击注册按钮后,我得到一个弹出的信息消息(模态),消息中有close(X)和OK按钮和标题:在ABC Project下,显示了以下内容&通知用户注册成功的文本。 我尝试了几种方法来点击这个弹出窗口中的OK按钮,但都没有成功: 附加提示: null 我很感激你给我的提示和支持谢谢