我正在尝试将REPL.BAT脚本与新的'J'选项一起使用,该选项允许使用JScript表达式替换参数。此脚本由@dbenham(原始REPL.BAT post 和最早的StackOverflow post)创建。我的语法有些困难,希望能得到一些帮助。以下是该场景的一个示例。
我有以下代码行:
"Port #" == driver.find_element_by_id("portno").text: break
我想用以下内容替换上面的代码行:
expected_conditions.text_to_be_present_in_element((By.ID, 'portno'), "Port #")
正如您所看到的,原始代码行具有小写的“id”,而我想要替换它的代码具有大写的“ID”。我已尝试使用以下内容替换该行:
type %iFile% |
repl "\b(.*?) \=\= driver\.find_element_by_(.*?)\(\q(.*?)\q\)\.text\: break"
"expected_conditions.text_to_be_present_in_element((By.$2.toUpperCase(), '$3'), $1)"
JMX >filenameNEW.py
每当我尝试这个时,都会收到“JScript运行时错误:无效字符”错误。我试着改变......
$2.toUpperCase()
...到...
$[2].toUpperCase()
...但收到我在最后一句中所述的相同错误。有人能帮我弄清楚我做错了什么吗?提前谢谢!
答案 0 :(得分:1)
你的问题有几个细节;首先是最简单的:
现在有一个有趣的观点:
最后一点:
哇!这里是;正如我所说,我使用了FindRepl.bat程序,但我认为这在REPL.BAT中的工作方式相同:
@echo off
set line= "Port #" == driver.find_element_by_id("portno").text: break
echo Input:
echo %line%
echo Wanted:
echo expected_conditions.text_to_be_present_in_element((By.ID, 'portno'), "Port #")
echo/
echo %line%| "FindRepl Modified.bat" "\s+(.*) \=\= driver\.find_element_by_(.*?)\(\q(.*?)\q\)\.text\: break"
"Apos=String.fromCharCode(39),'expected_conditions.text_to_be_present_in_element((By.'+$2.toUpperCase()+', '+Apos+$3+Apos+'), '+$1+')'" /J /Q:q
输出:
expected_conditions.text_to_be_present_in_element((By.ID, 'portno'), "Port #")
您可以尝试消除Apos变量并使用\ x27在撇号中包含的文字字符串中插入撇号。如果您发布此更改的结果,我将不胜感激......