gpt4 book ai didi

java - 使用 Selenium Webdriver 获取 div 中的项目列表

转载 作者:搜寻专家 更新时间:2023-10-31 19:29:00 24 4
gpt4 key购买 nike

假设我有以下内容

<div class="facetContainerDiv">
<div>
<label class="facetLabel">
<input class="facetCheck" type="checkbox" />
</label>
<label class="facetLabel">
<input class="facetCheck" type="checkbox" />
</label>
<label class="facetLabel">
<input class="facetCheck" type="checkbox" />
</label>
<label class="facetLabel">
<input class="facetCheck" type="checkbox" />
</label>
<label class="facetLabel">
<input class="facetCheck" type="checkbox" />
</label>
</div>
</div>

现在我想根据我提供的索引在复选框上打勾。所以我写了一个如下的方法

如何访问 div class="facetContainerDiv"中的所有元素?

我试过了

List<WebElements> elementsList =  driver.findElements(By.cssSelector(".facetContainerDiv"));
for(WebElement checkBox:elementsList) {
int i=0;
checkBox = elementsList.get(i);
bla bla bla..
}

上面代码中elementsList只有一个“type”为null的元素。

最佳答案

按照以下与您的情况完全匹配的代码进行操作。

  1. classfacetContainerDiv的div下的div创建web元素的界面

即为

<div class="facetContainerDiv">
<div>

</div>
</div>

2。创建一个 IList,其中包含第二个 div 中的所有元素,即,

<label class="facetLabel">
<input class="facetCheck" type="checkbox" />
</label>
<label class="facetLabel">
<input class="facetCheck" type="checkbox" />
</label>
<label class="facetLabel">
<input class="facetCheck" type="checkbox" />
</label>
<label class="facetLabel">
<input class="facetCheck" type="checkbox" />
</label>
<label class="facetLabel">
<input class="facetCheck" type="checkbox" />
</label>

3。使用索引访问每个复选框

请在下面找到代码

using System;
using System.Collections.Generic;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;

namespace SeleniumTests
{
class ChechBoxClickWthIndex
{
static void Main(string[] args)
{

IWebDriver driver = new FirefoxDriver();

driver.Navigate().GoToUrl("file:///C:/Users/chery/Desktop/CheckBox.html");

// Create an interface WebElement of the div under div with **class as facetContainerDiv**
IWebElement WebElement = driver.FindElement(By.XPath("//div[@class='facetContainerDiv']/div"));
// Create an IList and intialize it with all the elements of div under div with **class as facetContainerDiv**
IList<IWebElement> AllCheckBoxes = WebElement.FindElements(By.XPath("//label/input"));
int RowCount = AllCheckBoxes.Count;
for (int i = 0; i < RowCount; i++)
{
// Check the check boxes based on index
AllCheckBoxes[i].Click();

}
Console.WriteLine(RowCount);
Console.ReadLine();

}
}
}

关于java - 使用 Selenium Webdriver 获取 div 中的项目列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15537930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com