当前位置: 首页 > 知识库问答 >
问题:

找不到元素

宦宏爽
2023-03-14

我已经写了下面的代码来选择单选按钮,它的工作很好,但今天它不工作了。请找到html" target="_blank">代码和相应的错误消息

代码1:

WebDriverWait wait = new WebDriverWait(driver,10);
    WebElement radio = wait.until    (ExpectedConditions.presenceOfElementLocated(By.id("0_2485A_StartDate")));
    ((JavascriptExecutor)driver).executeScript("arguments[0].click()", radio);

错误1:“线程”main“org.openqa.selenium.TimeoutException中出现异常:等待存在由:By.id:0_2485a_startdate定位的元素10秒后超时”

代码2:

 WebDriverWait wait = new WebDriverWait(driver,10);
        WebElement radio = wait.until    (ExpectedConditions.presenceOfElementLocated(By.id("Radio_0_2485A")));
        ((JavascriptExecutor)driver).executeScript("arguments[0].click()", radio);

错误2:“线程”main“org.openqa.selenium.TimeoutException中出现异常:等待由:by.id:radio_0_2485a定位的元素存在10秒后超时”

代码3:

WebDriverWait wait = new WebDriverWait(driver,10);
        WebElement radio = wait.until(ExpectedConditions.elementToBeClickable(By.id("0_2485A_StartDate")));
        radio.click();

错误3:“线程”main“org.openqa.selenium.TimeoutException中出现异常:等待元素可单击10秒后超时:By.id:0_2485a_startdate”

代码4:

WebDriverWait wait=new WebDriverWait(驱动程序,10);WebElement radio=wait.until(ExpectedConditions.ElementToBeclickable(By.id(“Radio_0_2485A”));radio.click();

错误4:“线程”main“org.openqa.selenium.TimeoutException中出现异常:等待元素可单击10秒后超时:By.id:RADIO_0_2485A”

HTML:

    <th class="radio">
    <input id="0_2485A_StartDate" type="hidden" value="18/12/2015 00:01:00">

    <input name="Products[0].ProductCode" title="5 Year Fixed Rate Until 28/02/2021 with £999 Fee" id="Radio_0_2485A" type="radio" value="2485A">
    <label for="Radio_0_2485A">
       5 Year Fixed Rate Until 28/02/2021 with £999 Fee
  </label>
    </th>

请一定建议。

共有1个答案

仲柏
2023-03-14

PresenceOfElementLocated只是检查DOM中存在的元素,因此,如果您将其与ExpectedConditions一起使用,您的代码就可以正常工作。

但正如我所看到的,异常stacktrace表明您使用的是ElementToBeclickable,实际上ElementToBeclickable用于等待元素可见和可单击,而定位的元素被隐藏并且永远不可见。

你在寻找隐藏的元素所以你才有麻烦。

您应尝试按以下方式定位实际无线电元件:-

WebDriverWait wait = new WebDriverWait(driver,10);
WebElement radio = wait.until(ExpectedConditions.elementToBeClickable(By.id("Radio_0_2485A")))
radio.click()
 类似资料:
  • 我有一个输入框,就像我在这里用来输入我的问题,它的HTML是 每次,我都会尝试输入一些文本 我明白错误了-

  • 任何提示都会很有帮助!

  • 大家好,我正试图在网站中找到一个元素,但出于某种原因,它不允许我。该网页是Reddit的登录形式,我尝试输入用户名和密码,但当我列出所有输入时,它只出现在顶部搜索栏中。我想这是因为它就像在另一个“标签”一样,它会弹出到前面,但我不知道如何管理它。提前谢谢。

  • 我正在尝试以下元素: 以下是Java代码: 它找不到元素。请帮忙。谢谢。

  • 然而,我知道它是失败的前一个命令(如下所示),因为它从来没有点击到这个页面。 失败代码; 也试过;

  • 我正在尝试在Selenium IDE中运行一个记录的测试用例。问题是当我尝试执行整个测试用例时,Selenium会停止它,而不是在页面上找到一个元素。问题是我可以执行测试用例的单个步骤。我认为Selenium会在加载新页面之前尝试找到一个元素,所以我使用了clickAnd等待、暂停和waitForElementPresent命令-什么都不起作用,Selenium会停止测试用例。 调试日志 我将非常