Python中使用Selenium调用JS的querySelector选择action-button元素方案
你遇到的报错是字符串嵌套冲突导致的语法错误:你在querySelector的参数字符串中使用了单引号嵌套单引号,JS解析时会提前截断字符串,最终触发missing ) after argument list语法错误。
要定位cr-button标签下类为action-button的元素,有两种可行写法:
方案1:使用类选择器(更简洁,无引号冲突,更推荐)
直接使用CSS类选择器语法,不需要额外嵌套引号,替换{WHAT_TO_DO_HERE?}为:
'.cr-button.action-button'
修正后的完整代码如下:
printBtnlast = driver.execute_script( "return document.querySelector('print-preview-app')...('controls').querySelector('.cr-button.action-button')" )
方案2:使用属性选择器(需处理引号嵌套)
如果你需要使用属性选择器写法,将属性值的引号换成双引号避免冲突即可,替换内容为:
'cr-button[class="action-button"]'
补充说明:
cr-button[class="action-button"]仅会匹配class属性完全等于action-button的元素,如果目标元素同时包含其他类名,该选择器会失效,优先推荐使用类选择器写法。
对应目标元素截图:
内容的提问来源于stack exchange,提问作者The Swift Coder
相关产品推荐
相关产品推荐

