我试图在以下网站中自动执行添加到购物车功能,但是未找到“添加到购物车”按钮,尽管已标识元素,并且已使用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();
有人可以建议一个解决方案,该方法将单击“添加到购物车”按钮,添加的元素也应显示在购物车中吗?
答案 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元素,所以它什么也没做