我正在尝试访问输入字段,但我收到一条错误消息:
元素目前不可见。 当我尝试使用sendkeys方法在输入字段中键入元素时,它仍然不会导致任何结果。该元素的html代码如下:
<ul class="tagedit-list "><li class="tagedit-listelement tagedit-listelement-new"><input type="text" name="tag[]" value="" id="tagedit-input" maxlength="30" disabled="disabled" class="tagedit-input-disabled ui-autocomplete-input" dir="ltr" autocomplete="off" role="textbox" aria-autocomplete="list" aria-haspopup="true"><tester style="position: absolute; top: -9999px; left: -9999px; width: auto; font-size: 14px; font-family: Arial; font-weight: normal; letter-spacing: normal; white-space: nowrap;"></tester><span id="addTagLabel">Add a Tag<span></span></span></li></ul>
请指导我这里可能出现的问题。谢谢你的时间。
答案 0 :(得分:0)
请提供您尝试过的代码或链接。
它正在发生,因为您尝试与之交互的元素不是 可见。 要解决此问题,您需要做一些事情来使元素可见 第一。手动测试时,请使用inspect元素检查,使元素可见。
答案 1 :(得分:0)
向我们提供代码,我们可能会提供帮助。问题是该元素不可见,您可以使用Explicit wait。
以下是Java中的一些示例代码,以确定它是否可能在正确的方向上推动您,
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
WebDriverWait wait = new WebDriverWait(driver, seconds);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id(id));
如果没有,您是否可以提供有关元素不可见,页面加载等原因的更多信息? 另一种可能是使用JavaScriptExecutor。
答案 2 :(得分:0)
我找到了解决方案......
隐藏了文本框的可见性,因此我使用jquery使该元素可见,并在该元素中输入文本....现在它工作正常
我使用的代码是
((JavascriptExecutor)driver).executeScript("$J(\".tagedit-list li.tagedit-listelement-new input.tagedit-input-disabled\").css(\"display\", \"block\");");
((JavascriptExecutor)driver).executeScript("$J(\".tagedit-list li.tagedit-listelement-new input.tagedit-input-disabled\").val(\"test\");");
((JavascriptExecutor)driver).executeScript("$J(\"#addTag\").css(\"display\", \"block\");");
driver.findElement(By.id("addTag")).click();
谢谢......伙计们