我可以在Chrome中使用Actions
在文本中输入文字的唯一方法。但是,这同样适用于Safari
和Firefox
。
应用程序中intput的代码如下所示:
<div id="5712825281899484" class="location-input ace_editor ace-tm">
<textarea class="ace_text-input" wrap="off" autocorrect="off" autocapitalize="off" spellcheck="false" style="opacity: 0; height: 16px; width: 7.2px; left: 45px; top: 0px;"/>
<div class="ace_gutter">
<div class="ace_layer ace_gutter-layer ace_folding-enabled" style="margin-top: 0px; height: 180px; width: 41px;">
<div class="ace_gutter-cell " style="height: 16px;">1</div>
</div>
<div class="ace_gutter-active-line" style="top: 0px; height: 16px;"/>
</div>
<div class="ace_scroller" style="left: 41px; right: 0px; bottom: 0px;">
<div class="ace_content" style="margin-top: 0px; width: 444px; height: 180px; margin-left: 0px;">
</div>
以下是我用于识别输入的代码,这适用于Chrome:
@FindBy(xpath = "//div[@class='ace_content']//div[2] /child::div[@class='ace_active-line']")
WebElement txtLocation;
我在Chrome中使用了操作,我可以输入值:
Actions action = new Actions(webDriver);
action.moveToElement(txtLocation);
action.click();
action.sendKeys(location).build().perform();
在Firefox中,&#34;动作&#34;不工作:selenium只是继续执行而不输入文本,并且不报告错误。
但是,在Safari中使用&#34; Actions
&#34;它给了我这个错误:
org.openqa.selenium.WebDriverException: Unknown command: {"id":"60ej2zi96iqs","name":"mouseMoveTo","parameters":{"element":":wdc:1455640284141"}} (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 4 milliseconds
JAVASCRIPT 我也在Safari和Firefox中尝试了javascriptexecutor,但仍然没有运气。这就是javascript中代码的样子:
JavascriptExecutor jsExecutor = (JavascriptExecutor) webDriver;
tempWebElement = webDriver.findElement(By.xpath("//div[@class='ace_layer ace_text-layer']"));
jsExecutor.executeScript("document.getElementsByClassName('ace_line').value = '"+ location + "';");
上面的代码没有输入文本,在Selenium中运行时不会抛出任何错误。
花了很多时间试图解决这个问题。任何帮助都是有用的。
Selenium version: 2.48.2
答案 0 :(得分:0)
试试这个:
String xpath = "//div[@class='ace_content']//div[2] /child::div[@class='ace_active-line']";
String inputValue = //whatever you want to input
FirefoxDriver driver = new FirefoxDriver();
driver.findElement(by.xpath(xpath)).sendKeys(inputValue );
答案 1 :(得分:0)
我认为这是firefox浏览器的问题,因为Firefox会自动更新到最新版本。因此,我建议您卸载最新的浏览器版本并安装Firefox旧版本,如38.0。