2016-11-10 42 views
0

我想让下面的代码使用嵌套引号工作,但我不知道如何三重嵌套它们。这是我迄今为止的代码,但它不起作用,我运行它时得到了Runtime.evaluate threw exception: SyntaxError: Unexpected token &如何嵌套这些引号?

driver.executeScript("$("li[data-drilldown='interests']").click()") 

好像应该有更好的方式来做到这一点,但我不熟悉不够用javascript

+0

是否有某些原因需要使用JSE?为什么不使用CSS选择器''li [data-drilldown ='interest']“'并单击它? – JeffC

+0

由于某些原因,如果我这样做的web驱动程序错误,除非我使用睡眠声明,我不想处理。该错误可能是一个单独的问题。 – jmreicha

+0

只是FYI ...使用JSE不是一个用户场景。它允许你做一些用户不能做的事情。如果你不关心用户场景,那很好。这听起来像你需要调查并尝试一些'WebDriverWait'来解决等待问题。 – JeffC

回答

3

只是逃避他们:

driver.executeScript("$(\"li[data-drilldown='interests']\").click()"); 
2

在选择为删除引号当您要查找的值不包含空格时,它们不是必需的:

driver.executeScript('$("li[data-drilldown=interests]").click()')

driver.executeScript("$('li[data-drilldown=interests]').click()")

因为JavaScript允许单引号(')或双(“)引用作为字符串的分隔符。只要你有他们匹配的配对,或者可以嵌套在另一个中。这条规则的唯一例外是使用JSON。在那里,您必须使用双引号来分隔您的属性名称和字符串文字。