【问题标题】:Selenium web driver not able to locate an elementSelenium Web 驱动程序无法定位元素
【发布时间】:2020-12-29 04:36:49
【问题描述】:

我正在使用 Selenium 网络驱动程序单击一个文本框,该文本框由此标识为 id objdbColumnVO[6].columnValue。回放时,selenium 无法在网页上找到此元素。

HTML:

<input type="text" name="objdbColumnVO[6].columnValue" onkeydown="return noenter(event);" id="objdbColumnVO[6].columnValue" class="form-control" value="" title="" aria-invalid="false">

我已经尝试了以下所有选项,但没有运气。

//var textbox=WDS.browser.findElement(pkg.By.id("objdbColumnVO[6].columnValue"));

WDS.browser.findElement(pkg.By.id("objdbColumnVO[6].columnValue")).click();

//var EnterPolicy = WDS.browser.findElement(org.openqa.selenium.By.name("objdbColumnVO[6].columnValue"));

//EnterPolicy.click();

//WDS.browser.findElement(pkg.By.className("col-md-6 col-lg-6 col-sm-6 col-xs-5  caselog-custom-text")).click();

var element = WDS.browser.findElement(pkg.By.className("col-md-6.col-lg-6.col-sm-6.col-xs-5.caselog-custom-text"));
element.click();

【问题讨论】:

  • 能否也添加元素的html源代码?
  • By.cssSelector("input[class='form-control']") 可以试试这个,

标签: selenium selenium-webdriver xpath css-selectors webdriver


【解决方案1】:

要点击元素,您可以使用以下任一Locator Strategies

  • xpath

    WDS.browser.findElement(pkg.By.xpath("//input[@class='form-control' and contains(@onkeydown, 'noenter')][starts-with(@name, 'objdbColumnVO') and contains(@id, '6')]")).click();
    
  • cssSelector

    WDS.browser.findElement(pkg.By.cssSelector("input.form-control[onkeydown*='noenter'][name^='objdbColumnVO'][id*='6']")).click();
    

【讨论】:

    【解决方案2】:

    如果可行,你可以试试这个

    WebElement element =driver.findElement(By.name("objdbColumnVO[6].columnValue"));
    ((JavascriptExecutor) driver).executeScript("arguments[0].click();", element);
    

    【讨论】:

      猜你喜欢
      • 2015-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-28
      • 1970-01-01
      • 1970-01-01
      • 2015-12-16
      • 1970-01-01
      相关资源
      最近更新 更多