当执行以下行的测试用例时,我得到以下错误 -
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()
答案 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语句之前,隐式语句肯定会运行
如果它不起作用则转到明确的陈述