首页 文章

在selenium中通过xpath查找元素

提问于
浏览
-1

当执行以下行的测试用例时,我得到以下错误 -

NoSuchElementException:消息:无法找到元素:{“method”:“xpath”,“selector”:“// div [@ id ='sizzle-1442313418270'] / div / table / tbody / tr / td [3] “}

driver.find_element_by_xpath("//div[@id='sizzle-1442313418270']/div/table/tbody/tr/td[3]").click()
    driver.find_element_by_xpath("//div[@id='sizzle-1442313418270']/div/table/tbody/tr[2]/td[4]").click()

3 回答

  • 0

    我不能发表评论所以必须给出答案 .
    如果你确定元素存在,那么在执行行之前放一个 Thread.sleep (5000) ,如果有效,你就会知道selenium在元素加载之前正在执行 . 然后删除睡眠并等待使用显式等待在页面上显示的其他内容,然后执行其余代码

  • 0

    尝试

    WebElement element_p = (new WebDriverWait(_driver, 3))
                .until(ExpectedConditions.visibilityOfElementLocated(By
                        .xpath("//div[@id='sizzle-1442313418270']/div/table/tbody/tr/td[3]"))).click();
    

    另一种可能是你的元素在iframe中?

  • -1

    date 语句之前使用隐式等待语句

    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    

    在创建firefox构造函数之后执行wait语句会更好,因为在执行findElement语句之前,隐式语句肯定会运行

    如果它不起作用则转到明确的声明

相关问题