WebDriverException:拒绝将字符串计算为JavaScript

时间:2018-01-05 09:06:39

标签: javascript java selenium selenium-webdriver phantomjs

Plz帮助我。 我写了一个程序来登录linkedin并使用selenium分享一些东西。 但登录后,我想分享一些东西,但我遇到了一个问题:

WebElement ele = driver.findElement(By.ByCssSelector.cssSelector(".sharing-create-share-view__create-content>button"));
ele.click();
String content = shareContent[new Random().nextInt(shareContent.length)];
String setContentJS = "var x=document.getElementsByClassName(\"mentions-texteditor__contenteditable\");x[0].innerHTML=\"<p>"+content+"<br></p>\";";
JavascriptExecutor js = (JavascriptExecutor) driver;
ele = driver.findElement(By.ByCssSelector.cssSelector(".mentions-texteditor__contenteditable"));
js.executeScript(setContentJS, ele); // GET EXCEPTION
MyWebDriverUtils.mySleep(1, 1);
driver.findElement(By.ByCssSelector.cssSelector(".sharing-share-box__post-button")).click();

我的代码:

App.xaml.cs

硒-java的:3.4.0  phantomjsdriver:1.3.0  phantomjs:2.1.1

1 个答案:

答案 0 :(得分:0)

您使用的内容的价值是多少?您是否尝试使用简单的字符串(不包含任何html标记)作为内容的值,例如“test”。

ele中第二个参数js.executeScript(setContentJS, ele);是不必要的,因为没有任何参数占位:setContentJS中的参数[x]

尝试以下代码

String content = "Test 1234";
String setContentJS = "arguments[0].innerHTML=arguments[1]";
JavascriptExecutor js = (JavascriptExecutor) driver;
ele = driver.findElement(By.ByCssSelector.cssSelector(".mentions-texteditor__contenteditable"));
js.executeScript(setContentJS, ele, content); 

如果上面的代码仍无效,请尝试在DevTool的控制台选项卡中手动更改元素的innerHTML,以查看它是否会存档您的目标。