selenium - 我正在尝试 Selenium Webdriver 按类名查找输入元素

标签 selenium

如何找到元素input class="Test_type"?我通过 id=Test1 成功获得,但未能通过 input class="Test_type"

找到元素

我试过:

WebElement mainform = driver.findElement(By.className("mainform"));

List<WebElement> postadchildone2 = mainform.findElements(By.className("formrow"))

for(WebElement formrow: postadchildone2)
{
    WebElement formfield = formrow.findElement(By.className("formfield"));
    WebElement inputclass = formfield.findElement(By.className("Test_type"))

}

也尝试使用 CSS 选择器和 XPath,但它仍然说没有找到,因为相同的类名,它没有找到 input class

for 循环下我试着做

formrow.getText()

它显示了所有的文本结果但它没有使用类名?我卡住了,请帮忙

HTML:

<div class="mainform">
  <div class="formrow">
    <div class="formrow">
      <div class="formrow">
        <div class="formfield">
          <div id="Test1" class="city_select">
            <div class="blank1"/>
            <div class="formrow " style="margin-left:10px;">
              <div class="formrow">
                <div class="formlabel">
                   <strong>You Are</strong>
                </div>
                <div class="formfield">
                  <label>
                    <input class="Test_type required" type="radio"/>
                    YouareTest
                  </label>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

最佳答案

因为您有以下代码:

<div class="formfield">
    <label>
    <input class="Test_type required" type="radio"/>
      YouareTest
    </label>
</div>

我们需要以某种方式概述输入元素。 所以我建议使用 CSS 选择器来定位这个元素,因为这是最快的方法。 所以 'input' 标签具有以下类属性= "Test_type required" ,这意味着该元素应用了 2 个 CSS 类:

  • 测试类型
  • 需要 当使用CSS选择器元素定位时,一个类属性为y的元素B将被标记为B.y,一个具有2个类属性y和z的元素将被标记为B.y.z。 所以就我们的任务而言,它看起来像

      input.Test_type.required
    

但您也可以注意到您有另一个元素 - div,其父元素为类属性 =formfield。 因此,在结构中使用 CSS 将子元素定位到父元素:

 <parent class="zz">
     <child 1>
        <child2> abaracadabra</child>
     </child 1>
    </parent>

parent.zz child2 => 这样

所以我们的选择器的第二部分是这样的: div.formfield 因为它是与输入有关的父选择器。 所以解决方案组合=

WebElement inputt=driver.findElement(By.cssSelector('div.formfield input.Test_type.required'));

请试试这个,然后判断它是否适合你。

关于selenium - 我正在尝试 Selenium Webdriver 按类名查找输入元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25243352/

相关文章:

javascript - 从Python中的 session 存储中获取变量

selenium - 如何从selenium webdriver中的Frame导航回当前页面

google-chrome - 使用 Chrome 的 RemoteWebDriver

java - Selenium Java 打开新窗口,关闭它,并再次控制主窗口

python - chrome 上的 DevTools 远程调试无法与 headless-chrome 正常工作

python - WebDriver等待 javascript 值

java - 当缩放级别为 100% 时,如何单击 UI 上不可见的元素?

javascript - Protractor TAB 键已停止改变焦点,现在正在添加空格

python - 为什么给我这个错误 :TypeError: cannot pickle '_io.TextIOWrapper' object?

java - 我不想在Java中重复代码selenium