Java 错误';无法定位元素';尝试查找';添加到购物车';Flipkart上的按钮
我试图在Flipkart上找到Java 错误';无法定位元素';尝试查找';添加到购物车';Flipkart上的按钮,java,selenium,selenium-webdriver,xpath,css-selectors,Java,Selenium,Selenium Webdriver,Xpath,Css Selectors,我试图在Flipkart上找到添加到购物车按钮,但它不起作用 我试过下面的XPath,但都不管用 By AddToCart= By.xpath("//button[@class='_2AkmmA _2Npkh4 _2MWPVK'][text()='ADD TO CART']"); 或 //错误 org.openqa.selenium.NoSuchElementException:没有这样的元素:找不到元素:{“方法”:“xpath”,“选择器”:“//button[@class=”''''u2
添加到购物车按钮,但它不起作用
我试过下面的XPath,但都不管用
By AddToCart= By.xpath("//button[@class='_2AkmmA _2Npkh4 _2MWPVK'][text()='ADD TO CART']");
或
//错误
org.openqa.selenium.NoSuchElementException:没有这样的元素:找不到元素:{“方法”:“xpath”,“选择器”:“//button[@class=”''''u2akmma\u2npkh4''u2mwpvk'][text()='addtocart']”
请尝试以下xpath:
.//ul[@class='row']/li/button
尝试以下Xpath
//button[@class='_2AkmmA _2Npkh4 _2MWPVK' and contains(.,'ADD TO CART')]
或
此错误消息
org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//button[@class='_2AkmmA _2Npkh4 _2MWPVK'][text()='ADD TO CART']"}
…表示WebDriver无法定位元素
你很接近。要定位并单击(
)文本为的元素“添加到购物车”,您必须将元素的WebDriverWait诱导为可选择()
,并且您可以使用以下任一项:
css选择器
:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("ul.row>li>button"))).click();
xpath
:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[text()='ADD TO CART']"))).click();
试试这个
通过CSS选择器
--.row.col>按钮
通过XPath
--//button[text()=“ADD TO CART”]
您也可以尝试使用该类
下面是这样的
//按钮[@class=”\u 2AkmmA\u 2Npkh4\u 2MWPVK']我遇到了完全相同的问题,我注意到当选择产品时,会打开一个新窗口,selenium会在旧页面中搜索元素,结果显示错误消息:
org.openqa.selenium.NoSuchElementException:无此类元素:无法
定位元素:{“方法”:“xpath”,“选择器”:
因此,问题是您没有切换到打开的窗口,webdriver在旧页面而不是新打开的页面中搜索元素
当我在点击产品后尝试下面的代码,并在应用下面的代码后,搜索“添加到购物车”并继续时,这个问题得到了解决
解决方案:
String winHandleBefore = driver.getWindowHandle();
for(String winHandle : driver.getWindowHandles()){
driver.switchTo().window(winHandle);
}
为这个按钮添加HTML代码,然后我们可以帮助你。等待也可能有问题。我正在尝试自动化一个电子商务网站,搜索iPhone6s plus,对16gb的iPhone进行排序并添加到购物车。“添加到购物车”,HTML标签是w3.org/2000/svg“>添加到CartU是否尝试使用Thread.sleep,然后单击,以便排除等待问题?如果您能够单击,则其等待问题,如果不能,则说明您的代码有问题。是的,您使用了Thread.sleep。xpath确实检查了按钮,但在代码执行期间不起作用。我还尝试了新的WebDriverWait(驱动程序,20).until(ExpectedConditions.elementToBeClickable(By.xpath(//按钮[text()='ADD TO CART']))。单击();但不确定我将如何在页面对象模型中使用它。请将您的代码粘贴到此处,我将尝试在我的pc上执行它,看看是否有效。谢谢。但这对我仍然不起作用,并引发相同的错误。我正在使用页面对象模型,还尝试使用JavascriptExecutor向下滚动以使“添加到购物车”可单击。有什么建议吗?
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("ul.row>li>button"))).click();
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[text()='ADD TO CART']"))).click();
String winHandleBefore = driver.getWindowHandle();
for(String winHandle : driver.getWindowHandles()){
driver.switchTo().window(winHandle);
}