Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.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
Selenium(Java)如何从可能的元素列表中查找元素_Java_Selenium_Xpath_Element - Fatal编程技术网

Selenium(Java)如何从可能的元素列表中查找元素

Selenium(Java)如何从可能的元素列表中查找元素,java,selenium,xpath,element,Java,Selenium,Xpath,Element,对于selenium来说,为了简化它,一个页面上可能会出现50个元素,所以我有50个driver.findElement(By.xpath().click()),单击可能出现的任何元素,我的问题是,如果findelement为flase,程序将结束,但我要检查的是第一个元素,如果为false,则检查第二个元素,如果为false,则检查第三个元素,直到它发现findelement为true并单击它。最好的方法是什么?谢谢。 制作一个XPath数组,然后在其中循环,直到找到一个元素。元素之间有什么不

对于selenium来说,为了简化它,一个页面上可能会出现50个元素,所以我有50个driver.findElement(By.xpath().click()),单击可能出现的任何元素,我的问题是,如果findelement为flase,程序将结束,但我要检查的是第一个元素,如果为false,则检查第二个元素,如果为false,则检查第三个元素,直到它发现findelement为true并单击它。最好的方法是什么?谢谢。

制作一个XPath数组,然后在其中循环,直到找到一个元素。

元素之间有什么不同?这将有助于得到更好的答案,但问题的第二部分的答案……如何检查元素,然后继续如果找不到,我会这样做

建立一个你的定位器的
列表
(By.*东西),在它们之间循环寻找一个匹配的,如果你找到匹配的,然后单击它

List<By> locators = new ArrayList<>();
locators.add(By.id("someId"));
locators.add(By.cssSelector("div.someClass"));
// add all your locators to the List<>

for (By locator : locators)
{
    List<WebElement> elements = driver.findElements(locator);
    if (elements.size() > 0)
    {
        elements.get(0).click();
        break;
    }
}
List locators=new ArrayList();
locators.add(By.id(“someId”);
locators.add(By.cssSelector(“div.someClass”);
//将所有定位器添加到列表中
用于(按定位器:定位器)
{
列表元素=driver.findElements(定位器);
if(elements.size()>0)
{
元素。获取(0)。单击();
打破
}
}

作为
findelelement()
的结果,您将如何定义该false/true?跳过或单击元素背后的条件有点不清楚。它们都非常相似,它们看起来都像-driver.findelelement(By.xpath(//img[@title='titileure!'])。单击();是否要查找具有特定img标题的元素或页面上某个位置的元素?