在selenium中通过xpath查找元素

时间:2015-09-15 10:46:05

标签: python selenium selenium-webdriver automation

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

  

NoSuchElementException:消息:无法找到元素:   { “方法”: “的xpath”, “选择器”: “// DIV [@ ID = '嘶嘶声-1442313418270'] / DIV /表/ 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 :(得分:0)

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

答案 1 :(得分: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中?

答案 2 :(得分:-1)

日期声明

之前使用隐式等待声明
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

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

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