如何处理硒中重复元素,其中重复元素带有==$0
标记?
转到www.google.com并搜索google搜索按钮,我已经尝试过迭代器并创建列表,但这是处理==$0
的正确方法
driver.findElements(By.xpath("//input[@aria-label='Google Search']"));
我要选择第二个元素。
答案 0 :(得分:2)
$0
,$1
,$2
,$3
和$4
是对最后五个DOM元素的历史参考在google-chrome-devtools的“元素”面板中或在“个人档案”面板中选择的最后五个 JavaScript堆对象中进行了检查。 $0
返回最近选择的元素或JavaScript对象,$1
返回最近选择的第二个元素,依此类推。
在您的用例中,您已通过“元素”面板检查了 Google搜索按钮。因此,在控制台抽屉中,$0
已被评估并显示与以下元素相同的元素:
有关用例的更多信息将有助于我们以更好的方式回答您的问题。但是,HTML DOM中的每个元素都可以使用css-selectors或xpath进行唯一标识。
如果您的用例是 Google搜索任何特定的术语/短语,则可以使用以下解决方案:
WebElement searchField = driver.findElement(By.name("q"));
searchField.sendKeys("user3245610");
searchField.sendKeys("Keys.RETURN");
您可以在How to click a random link from google search results through Selenium and Python
中找到详细的相关讨论。
答案 1 :(得分:0)
您要单击的可见按钮是div的后代,该div具有“ FPdoLc VlcLAe”类,因此可以使用
进行选择driver.findElements(By.xpath("//div[@class='FPdoLc VlcLAe']//input[@name='btnK']"));
不可见的是div的后代,该div的类=“ VlcLAe”,但没有“ FPdoLc”,因此有所不同。
答案 2 :(得分:0)