Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 每次单击链接列表中的不同链接(随机)_Java_Selenium Webdriver - Fatal编程技术网

Java 每次单击链接列表中的不同链接(随机)

Java 每次单击链接列表中的不同链接(随机),java,selenium-webdriver,Java,Selenium Webdriver,我正在使用Java开发SeleniumWebDriver。 我想在每次浏览网页时,从网页上的可用链接列表中随机单击一个链接。下面是详细的场景 我正在写一份问卷,一页上有一个以上的问题。例如,一个页面有两个问题: 性别问题有两种选择。我想随机选择一个。以下是XPath: //img[@alt='Male'] //img[@alt='Female'] //form[@id='question_data']/div/div[3]/div[2]/div //form[@id='question_dat

我正在使用Java开发SeleniumWebDriver。 我想在每次浏览网页时,从网页上的可用链接列表中随机单击一个链接。下面是详细的场景

我正在写一份问卷,一页上有一个以上的问题。例如,一个页面有两个问题:

性别问题有两种选择。我想随机选择一个。以下是XPath:

//img[@alt='Male']
//img[@alt='Female']
//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
年龄问题,有7个选项,希望随机选择一个或两个。以下是XPath:

//img[@alt='Male']
//img[@alt='Female']
//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

使用isDisplayed函数查看显示的答案类型(//img或//form)。 添加if-else您还必须处理NoSuchElementFount异常。 获取//img的编号或//form的编号。
使用Math.random()函数并选择random answer。

首先获得所有可用元素,如:

List<WebElement> allElements = driver.findElements(By.xpath(correct_xpath_to_all_elements));
根据上面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();
List allegements=driver.findElements(By.xpath(//form[@id='question_data']]/div/div[3]/div”);
Allegements[rnd.nextInt(allegements.length)].findElement(By.xpath(“div”)).click();

将不同的xpath选项放在列表中,使用
Math.random()
random
类推出一个介于0和x之间的随机数,然后从列表中获取该索引上的xpath?看起来是很基本的东西。