【问题标题】:Selenium Error No signature of method: org.openqa.selenium.chrome.ChromeDriver.find_element_by_class_name() is applicable for argumentSelenium 错误没有方法签名:org.openqa.selenium.chrome.ChromeDriver.find_element_by_class_name() 适用于参数
【发布时间】:2019-06-28 18:55:55
【问题描述】:

我想在 selenium 中找到我的 TextField,但我不知道该怎么做(我第一次使用 selenium)。

我尝试了以下选项,但没有任何效果

  1. driver.find_element_by_name(Token).send_keys(abcdefghijklm)

  2. driver.find_element_by_class_name('form-control.ng-untouched.ng-pristine.ng-valid').send_keys("asbfsbgkf")

  3. driver.find_element_by_cssSelector("input.form-control ng-untouched ng-pristine ng-valid[placeholder='Token string']")

  4. driver.findElementByCSSSelector("input.form-control ng-untouched ng-pristine ng-valid[placeholder='Token string']")

  5. driver.find_element_by_xpath("//input[@class='form-control ng-untouched ng-pristine ng-valid'][@type='text']").send_keys("asbfsbgkf")

有人,请帮帮我。我真的很感激。

这是 HTML:(突出显示我需要搜索的那个 - “第二个值”输入)

`

<html lang="en" class="gr__xx_xx_xx_xx_xx_xx_xx">
<body data-gr-c-s-loaded="true"><!--  <g:savetophone id="savetomobile_tag" --><!--  onsuccess="successHandler"--><!--onfailure="failureHandler" size="small" theme="light" ></g:savetomobile>--><app-root _nghost-c0="" ng-version="4.4.6"><div _ngcontent-c0="" class="container-fluid">
  <nav _ngcontent-c0="" class="navbar navbar-expand-lg navbar-light bg-light">
    <button _ngcontent-c0="" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation" class="navbar-toggler" data-target="#navbarSupportedContent" data-toggle="collapse" type="button">
          <span _ngcontent-c0="" class="navbar-toggler-icon"></span>
        </button>
    <div _ngcontent-c0="" class="collapse navbar-collapse" id="navbarSupportedContent">
      <ul _ngcontent-c0="" class="navbar-nav mr-auto">
        <li _ngcontent-c0="" class="nav-item active">
          POC Tester
        </li>
      </ul>
    </div>
  </nav>
  <div _ngcontent-c0="" class="row">
    <div _ngcontent-c0="" class="col-12">
      <app-user-input _ngcontent-c0=""><div>
  <div class="jumbotron">
    <h3>Please provide the following information</h3>
    <hr class="my-4">
    <div>
    </div>
    
    <div class="input-group-mt-2">
      <span class="input-group-btn">
              <div class="d-inline-block dropdown" ngbdropdown="">
        <button aria-haspopup="true" class="btn btn-outline-primary dropdown-toggle" id="dropdownBasic1" ngbdropdowntoggle="" aria-expanded="false">environment</button>
        <div aria-labelledby="dropdownBasic1" ngbdropdownmenu="" class="dropdown-menu">
          <!----><button class="dropdown-item">status</button><button class="dropdown-item">status</button>
        </div>
      </div>
        
      </span>
      <input aria-describedby="basic-addon1" aria-label="URL" class="form-control ng-untouched ng-pristine ng-valid" placeholder="https://something.something.com" type="text">
    </div>
    
    <div class="input-group-mt-2">
      <span class="input-group-btn">
              <div class="d-inline-block dropdown" ngbdropdown="">
        <button aria-haspopup="true" class="btn btn-outline-primary dropdown-toggle" id="dropdownBasic1" ngbdropdowntoggle="" aria-expanded="false">Enjoy button</button>
        <div aria-labelledby="dropdownBasic1" ngbdropdownmenu="" class="dropdown-menu">
          <!----><button class="dropdown-item">Enjoy button</button><button class="dropdown-item">Offers &amp; Notifications</button>
        </div>
      </div>
        
      </span>
      <input aria-describedby="basic-addon1" aria-label="URL" class="form-control ng-untouched ng-pristine ng-valid" placeholder="https://something.somewhere.com" type="text">
    </div>
    <div class="input-group mt-2">
      <span class="input-group-btn">
        <button class="btn  btn-secondary" type="button">First value</button>
      </span>
      <input aria-describedby="basic-addon1" aria-label="URL" class="form-control ng-untouched ng-pristine ng-valid" placeholder="test value" type="text">
    </div>
    <div class="input-group mt-2">
      <span class="input-group-btn">
        <button class="btn  btn-secondary" type="button">Second Value</button>
      </span>
      **<input aria-describedby="basic-addon1" aria-label="URL" class="form-control ng-untouched ng-pristine ng-valid" placeholder="user value" type="text">**
    </div>
    
    
    <div class="input-group mt-2">
      <span class="input-group-btn">
        <button class="btn  btn-secondary" type="button">third value</button>
      </span>
      <input aria-describedby="basic-addon1" aria-label="URL" class="form-control ng-untouched ng-pristine ng-valid" placeholder="test user" type="text">
    </div>
    <div class="mt-2">
      <button class="btn btn-primary">Generate value</button>
    </div>
    <!----><div class="mt-4">
      press:
      
      
      <div id="location">
      </div>
    </div>
    <div class="mt-2">
      <span></span>
    </div>
    <ngb-progressbar type="success">
    <div class="progress">
      <div aria-valuemin="0" role="progress" class="progress bg-success" aria-valuenow="0" aria-valuemax="100" style="width: 0%;">
        <!---->
      </div>
    </div>
  </ngb-progressbar>
  </div>
  
  <div class="mt-5">
    <p>content:</p>
    <textarea class="form-control ng-untouched ng-pristine ng-valid" rows="20"></textarea>
  </div>
</div>
</app-user-input>
    </div>
  </div>
</div></app-root><script type="text/javascript" src="inline.0c00000000000000ca85.bundle.js"></script><script type="text/javascript" src="000000000000000015b.bundle.js"></script><script type="text/javascript" src="scripts.0000000000000fc0000.bundle.js"></script><script type="text/javascript" src="vendor.00000000fgf000000gdf.bundle.js"></script><script type="text/javascript" src="main.cf3000000000000eb000a.bundle.js"></script></body></html>

【问题讨论】:

    标签: selenium missingmethodexception


    【解决方案1】:

    看起来所有输入字段都具有相同的类名。所以为了使其唯一,试试这个。

    driver.find_element_by_xpath("(//input[@class='form-control ng-untouched ng-pristine ng-valid'])[n]").send_keys("value")
    
    where n=1,2,3...n
    

    第一个元素的 PS n=1。如果这有帮助,请告诉我。

    【讨论】:

      【解决方案2】:

      在大多数情况下,您的 xpath 会返回列表。由于我们知道我们正在寻找第二个输入元素,我们可以使用以下代码从列表中获取第二个结果:

      second_input_xpath = "//div[@class='input-group-mt-2'][2]//input"
      driver.find_element_by_xpath(second_input_xpath ).send_keys("asbfsbgkf")
      

      关于标题中的主要错误,您似乎没有正确初始化您的 Chrome 网络驱动程序。我建议在 selenium 文档中查看 here

      【讨论】:

      • 抱歉回复晚了。我正忙于其他一些事情。这是我用来初始化 chrome 浏览器的代码。它正在打开 URL,但随后抛出此错误 ------------- import org.openqa.selenium.* import org.openqa.selenium.chrome.ChromeDriver //Initiate WebDriver System.setProperty ("webdriver.chrome.driver","C://chromedriver_win32/chromedriver.exe"); WebDriver driver=new ChromeDriver(); driver.get("google.com.au/")
      • @user8472243 我不确定评论中的错误是什么。您能否使用代码 sn-p 更新您的问题以及您遇到错误的位置。此外,您编码的语言对于标记问题很有用
      猜你喜欢
      • 2021-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-19
      相关资源
      最近更新 更多