当前位置: 首页 > 知识库问答 >
问题:

在Selenium Webdriver中无法检测电子商务网站中的签出弹出窗口

胡劲
2023-03-14

我试图用Java在Selenium Webdriver中自动化电子商务网站上的购买(仅用于培训)。当我点击添加到购物车,弹出窗口出现“继续购物”或“继续结帐”按钮。问题是,Selenium无法检测结帐按钮。在进一步的研究(issplayed())中,我发现它无法检测整个弹出窗口,我得到的只是ElementNotVisibleException。

我尝试了以下选项:1)检查是否有多个windowhandle,发现只有一个窗口句柄。2)检查弹出窗口是否是另一个框架。但它是主框架的一部分。所以切换到另一个框架也是被排除的。3)我尝试向下滚动窗口一点。4)尝试使用WebdriverWait来定位元素的存在。

我的代码片段:

WebElement proceed_to_checkout = (new WebDriverWait(driver, 20)).until(ExpectedConditions.presenceOfElementLocated(By.xpath(".//*[@id='layer_cart']/div[1]/div[2]/div[4]/a/span"))) ;
proceed_to_checkout.click();

共有1个答案

李开宇
2023-03-14

嗯,这对我来说非常有效,没有任何打嗝:

package queries;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class SQ34442686 {

    public static void main(String[] args) throws InterruptedException {
        WebDriver driver=new FirefoxDriver();
        driver.get("http://automationpractice.com/index.php?id_product=4&controller=product");
        driver.manage().window().maximize();
        driver.manage().timeouts().implicitlyWait(6, TimeUnit.SECONDS);
        driver.findElement(By.xpath(".//*[text()='Add to cart']")).click();;
        driver.findElement(By.xpath(".//a[contains(@title,'Proceed to checkout')]")).click();
        driver.close();
    }

}
 类似资料:
  • 问题内容: 我知道可以检测其他浏览器是否阻止了弹出窗口的javascript技术。这是基本测试: 但这在Chrome中不起作用。阻止弹出窗口时,永远不会到达“弹出窗口被阻止”部分。 当然,该测试在一定程度上是可行的,因为Chrome实际上并没有阻止弹出窗口,而是在右下角的最小化最小窗口中打开了该窗口,其中列出了“阻止的”弹出窗口。 我想做的就是能够确定弹出窗口是否被Chrome的弹出窗口阻止程序阻

  • 问题内容: 我无法在Shopee(电子商务网站)上拉低产品的价格。 我看了@dmitrybelyakov解决的问题)。 该解决方案帮助我获得了产品的“名称”和“ historical_sold”,但我无法获得产品的价格。我在Json字符串中找不到价格值。因此,我尝试使用Selenium通过xpath提取数据,但似乎失败了。 电子商务网站的链接:https : //shopee.com.my/sea

  • 用WordPress构建电子商务网站已经是一个流行的解决方案,与oscommerce、prestashop相比,WordPress更适合构建小型电商网站,显然WordPress对资源的消耗使其难以胜任大型电子商务网站,但博客式营销的模式以及WordPress的CMS特性也让它有胜过大型电商网站的地方——搭建更容易、费用低、管理简单,非常适合那些卖的产品不多的人。今天介绍的是一款新兴的WordPre

  • 问题内容: 我正在使用Selenium Webdriver自动执行网页。我无法使用简单元素定位器方法在模式弹出窗口中单击按钮。 例: 打开www.walmart.com 在搜索框中输入电视。 选择一些电视,然后单击“添加到购物车” 现在出现一个弹出窗口,其中有“签出”按钮。我需要点击此“结帐”按钮。 我尝试了switchTo()窗口句柄,也尝试了switchTo()框架,但没有任何效果。 问题答案

  • 本文向大家介绍Bootstrap在线电子商务网站实战项目5,包括了Bootstrap在线电子商务网站实战项目5的使用技巧和注意事项,需要的朋友参考一下 构建了公司网站之后,接下来就可以考虑设计一个在线商店了。 此次的设计以上一章的设计为基础, 只是添加了一个包含如下元素的新页面: □ 包含商品小图、标题和说明的产品网格; □ 位于左侧的变懒,用于按类别、品牌等筛选商品; □ 方便用户导航的面包屑和

  • 我正试图打开一个弹出身份验证对话框的ftp页面。我正在使用Robot类的Keypress事件输入身份验证细节。但是在这里,如果焦点不在那个弹出窗口上,那么它在另一个处于焦点中的窗口中键入身份验证详细信息。由于这个弹出窗口不是web元素,我不能使用driver.switchto().window(),因为这里我需要传递windowhandle,我没有得到它。如果我可以点击驱动程序窗口,我的焦点将转移