我正在使用Java开发Selenium WebDriver。 我想在每次浏览该页面时从网页上的可用链接列表中随机点击链接。这是详细的场景。
我正在制作一份问卷,其中一页上有一个以上的问题。例如,一个页面有两个问题:
性别问题有两种选择。我想随机选择一个。这是xpaths:
//img[@alt='Male']
//img[@alt='Female']
年龄问题,有7个选项,想要随机选择一个或两个。这是xpaths:
//form[@id='question_data']/div/div[3]/div[2]/div
//form[@id='question_data']/div/div[3]/div[3]/div
//form[@id='question_data']/div/div[3]/div[4]/div
//form[@id='question_data']/div/div[3]/div[5]/div
//form[@id='question_data']/div/div[3]/div[6]/div
//form[@id='question_data']/div/div[3]/div[7]/div
//form[@id='question_data']/div/div[3]/div[8/div
答案 0 :(得分:0)
您首先获得所有可用元素,例如:
List<WebElement> allElements = driver.findElements(By.xpath(correct_xpath_to_all_elements));
然后从列表中随机选择一个点击:
allElements[rnd.nextInt(allElements.length)].click();
根据您在上面构建XPath的具体方式,您可能需要在单击之前在层次结构中向下钻取。使用上面的示例代码,如下所示。虽然从你提供的XPath示例中,我怀疑这会起作用;希望它足以给你一个想法!
List<WebElement> allElements = driver.findElements(By.xpath("//form[@id='question_data']/div/div[3]/div"));
allElements[rnd.nextInt(allElements.length)].findElement(By.xpath("div")).click();
答案 1 :(得分:-1)
使用isDisplayed函数查看要显示的答案类型(// img或// form)。 添加if-else也需要处理NoSuchElementFount异常。 获取//形式的// img或no。 使用Math.random()函数并选择随机答案。