Selenium Webdriver 3.7中无法单击按钮(WebElement)

时间:2018-08-29 09:20:28

标签: selenium

我试图在以下网站中自动执行添加到购物车功能,但是未找到“添加到购物车”按钮,尽管已标识元素,并且已使用Actions类和Javascriptexecutor编写了代码以单击该按钮。 / p>

网站:https://redmart.com/sales 按钮:添加到购物车

硒代码:

WebElement element4 =   
driver.findElement(By.xpath("//article[@id='contentSection']   //div[@class='productShelf']//ul/li[1]"));
WebElement element5 = element4.findElement(By.xpath("div[3]/div/a/span"));

actions = new Actions(driver);
actions.moveToElement(element4).moveToElement(element5);
Thread.sleep(3000);

actions.click();
actions.build().perform();

有人可以建议一个解决方案,该方法将单击“添加到购物车”按钮,添加的元素也应显示在购物车中吗?

5 个答案:

答案 0 :(得分:0)

我真的认为您选择了错误的元素:

>>> has_dups('Hett, Agva,')
False
>>> has_dups('Hett, Agva, Delf, Agva, Hett,')
True

无论如何,请看一下我在这篇文章中的回答,以确保您获得正确的信息;) python selenium click on button

答案 1 :(得分:0)

请尝试使用此xpath:

//ul[contains(@class,'productList')][1]//li[1]//a[contains(@class,'Button')]

这是第一个``添加到购物车''按钮。 如果要单击其他产品,只需在xpath中更改产品列表或li标签的索引。 也请尝试单击而不使用操作。

driver.findElement(By.xpath("//ul[contains(@class,'productList')][1]//li[1]//a[contains(@class,'Button')]").click();

这可能是“动作”问题。

希望对您有帮助!

答案 2 :(得分:0)

您的xpath不正确,因为它没有选择按钮。
试试这个xpath "//li[@data-id='88800134']/div[3]/div/a",让我知道这是否解决了问题。

driver.findElement(By.xpath("//li[@data-id='88800134']/div[3]/div/a")).click();

稍后编辑:

WebDriver driver = new ChromeDriver();
    driver.get("https://redmart.com/sales ");
    driver.manage().timeouts().implicitlyWait(5,TimeUnit.SECONDS);

    WebElement element =driver.findElement(By.xpath("//li[@data-id='88800134']/div[3]/div/a"));

    JavascriptExecutor js = (JavascriptExecutor)driver;
    js.executeScript("arguments[0].click();", element);

答案 3 :(得分:0)

尝试使用以下xpath:

// ul [包含(@ class,'productList')] [1] // li [1] // a [包含(@ class,'Button')] /跨度

这是第一项。 (// span [text()='添加到购物车'])[1]

答案 4 :(得分:0)

尝试将替换WebElement element5更改为以下代码:

WebElement element5 = element4.findElement(By.xpath("/div[3]/div/a/span/parent::node()")); 因为您似乎要点击一个span元素,所以它什么也没做