Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.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 使用Selenium WebDriver引用未命名元素_Java_Html_Selenium_Selenium Webdriver_Find - Fatal编程技术网

Java 使用Selenium WebDriver引用未命名元素

Java 使用Selenium WebDriver引用未命名元素,java,html,selenium,selenium-webdriver,find,Java,Html,Selenium,Selenium Webdriver,Find,我是selenium新手,在Java中使用WebDriver在网页上查找特定元素时遇到困难。我试图引用的特定元素是链接,但没有与之关联的任何ID/其他XML属性。我无法访问HTML源代码,因此无法向元素添加任何标识符。我不确定使用FindBy函数可以做什么,也不可以做什么,所以有人可以看看HTML,告诉我如何找到指定的元素,最终目标是使用WebElement。单击它的方法 <div class="col-md-12"> <h3>My Registered Card

我是selenium新手,在Java中使用WebDriver在网页上查找特定元素时遇到困难。我试图引用的特定元素是链接,但没有与之关联的任何ID/其他XML属性。我无法访问HTML源代码,因此无法向元素添加任何标识符。我不确定使用FindBy函数可以做什么,也不可以做什么,所以有人可以看看HTML,告诉我如何找到指定的元素,最终目标是使用WebElement。单击它的方法

<div class="col-md-12">
    <h3>My Registered Cards</h3>
    <div id="cards" class="row list-group">
        <div>
这条线

这条线

这条线

这条线

我已经尝试了几种不同的方法,但是WebDriver在这两种情况下都没有找到正确的元素

@FindBy(linkText = "Card Name")
    public List<WebElement> cards;

编辑:感谢SiKing 这不完全是我想要的答案,但你确实为我指明了正确的方向

我最终做的是

@FindBy(xpath = "//div[@id='cards']/div/a")
    public List<WebElement> cards;
如果不清楚,我想做的是得到一个所有卡片的列表,具体来说,就是网站上的卡片链接,然后我可以按顺序单击选择器

@FindBy(linkText = "Card Name")
@FindBy(xpath = "//div[@id='cards']/div/@a")
将找不到任何内容,因为它查找包含在a标记中的文本

选择器

@FindBy(linkText = "Card Name")
@FindBy(xpath = "//div[@id='cards']/div/@a")
正在查找元素div的属性a,在具有属性id='cards'的元素div下。。。所以也不是你想要的

您可能想要:

@FindBy(xpath = "//div[@id='cards']//a")
它将在div下找到属性id='cards'的第一个a元素

嘿,如果其他方法都失败了,请尝试文档:


“按链接查找”文本是否仅适用于锚定标记而不是h4标记?
@FindBy(linkText = "Card Name")
@FindBy(xpath = "//div[@id='cards']/div/@a")
@FindBy(xpath = "//div[@id='cards']//a")