【发布时间】:2020-09-03 14:23:06
【问题描述】:
我正在测试一个网站,我想随机获取一个 div 并点击它。
每个Div都有产品图片。
网站是这样的:
https://www.trendyol.com/tum--urunler?q=bilgisayar&qt=bilgisayar&st=bilgisayar
我该怎么做?
【问题讨论】:
标签: java selenium testing selenium-webdriver nullpointerexception
我正在测试一个网站,我想随机获取一个 div 并点击它。
每个Div都有产品图片。
网站是这样的:
https://www.trendyol.com/tum--urunler?q=bilgisayar&qt=bilgisayar&st=bilgisayar
我该怎么做?
【问题讨论】:
标签: java selenium testing selenium-webdriver nullpointerexception
您可以使用以下代码:
List<WebElement> div_elements = driver.findElememts(By.xpath(“//div[@class=‘p-card-wrppr’]”));
Random random = new Random();
int num = random.nextInt(div_elements.size());
div_elements.get(num).click();
我假设你想点击任何类 p-card-wrppr 的 div。如果您想要具有不同类的 div,请相应地更改您的 xpath。
【讨论】:
我不是很精通java,但是你会做的是获取div的总数,然后生成一个1到N之间的随机数,然后点击它。在 c# 中它看起来像这样:
// This will get you the number of DIVs under the 'prdct-cntnr-wrppr' class
int numDivs = driver.WebDriver.GetXpathCount("//*[@class='prdct-cntnr-wrppr']/div");
Random ran = new Random();
int randomNum = ran.Next(1,numDivs); // generates a random number between 1 and number of divs
driver.FindElement(By.XPath(String.Format("//*[@class='prdct-cntnr-wrppr']/div[{0}]", randomNum))).Click();
请注意,这仅在您查看相同级别的 div 时才有效。如果你想要 sub-divs,那就有点不同,但或多或少是一样的。
【讨论】: