我不知道如何找到点击了哪个项目链接。 我有网页http://demo.opencart.com/,我选择产品并去比较产品,我使用随机点击"添加到购物车",我知道检查项目的价格我点击"加入购物车"与购物车价格相同。
public void chooseRandomItem() {
List <WebElement> links = driver.findElements(By.xpath("//input[@value = \"Add to Cart\"]"));
Random gen = new Random();
WebElement link = links.get(gen.nextInt(links.size()));
link.click();
它的工作,但现在我不知道哪个&#34;添加到购物车&#34;点击了,我不能用购物车中的价格来支持它。我该如何解决?
________________________修订__________________________
模拟:
转到http://demo.opencart.com/index.php?route=product/search&search=ipod
点击&#34;比较项目&#34;在项目
点击网址&#34;产品比较&#34;
选择一个随机商品,然后点击&#34;添加到购物车&#34;
检查购物车中的价格是否与我选择(随机)商品价格相同
现在我选择随机链接,我必须将此随机商品的价格与购物车中的价格进行比较
答案 0 :(得分:0)
因为这都在HTML表格中,所以它会让它变得更难。我会做的是:
totColumns
)。通过计算HTML TD
中TR
中的TABLE
来执行此操作。r
之间的随机数(totColumns
)。你可以轻松地谷歌这一点。r
获取价格,然后点击列r
中的添加到购物车链接。您知道哪一行代价,只需从该行抓取TD
#r
。对“添加到购物车”链接行执行相同操作并单击它。现在,您可以将“产品比较”页面上的价格与购物车中的价格进行比较。
编辑:在考虑了这一点之后稍微改变并添加了一些细节。
答案 1 :(得分:0)
简而言之,我将将链接和价格(或更多信息)包装成一种product-ui-element,以便在代码中获得更好的结构。
首先,您将所有产品作为集合,并随意选择一个。其次,您获取此具体产品的信息。
var products = WebDriver.FindAdaptedElements(By.CssSelector("div.product-thumb"));
// do your random selection
var product = products.ElementAt(???); // do your random selection
// get product related elements - the price:
var price = product.FindAdaptedElement(By.CssSelector("p.price")).Text;
// add to cart
product.FindAdaptedElement(By.CssSelector("div.button-group>button")).Click();
// .. do the checks ..
在下一步中,您可以使用 price 变量(字符串)来验证该产品的正确金额。