如何在send_keys中转义“ /”?

时间:2019-10-23 23:12:26

标签: python selenium

运行一个脚本,该脚本将代码块写入网站上的文本区域。前四行“行”正确写入,直到var url = "https:,此时光标跳到文本区域的左上角,然后继续写入。每次遇到/字符时,光标将返回左上角,然后继续写入。

如何防止光标受到影响。

我尝试了\/\\/{/}以及类似的方法来逃脱斜线。

self.driver.find_element_by_id('textarea').send_keys(
        '\nvar device = this\n\nvar url = "' + baseurl + '/' + firmwarename + '"\n\nvar conv = TR69.createConnection(device)\n\ntry {'+
   'var uuid = java.util.UUID.randomUUID().toString().replace("-","") \n'+

它的物理作用:

myhiddenurl.comSG9C130016_prod-mycomponent-5260-8a.27.103-combined-squashfs.img.gsdf"
var conv = TR69.createConnection(device)
var device = this
var url = "http:

请注意,第3行和第4行应分别为1和2。第1行是现在第4行的延续。

这是显示问题的示例代码...

    firmwarename = "tchrisdemo-code-3-2-3.gsdf"
    self.driver.get("https://futureoftesting.us/os.html")
    self.driver.find_element_by_id('textarea').clear()
    baseurl = "http://myhiddendomain.com/"
    self.driver.find_element_by_id('textarea').send_keys(
        '\nvar device = this\n\nvar url = "' + baseurl + '/' + 
    firmwarename + '"\n\nvar conv = TR69.createConnection(device)\n\ntry {'+
   'var uuid = java.util.UUID.randomUUID().toString().replace("-","") \n'+
   'var dlRequest = new TR69.DownloadRequest() \n' )

代码的第5行是问题...

我已经尝试了各种与您的评论类似的更改。一个允许使用.format的.format允许一个“ /”通过,然后跳转到文本区域的顶部,并继续在下一个书写。

    baseurl = r"http://myhiddendomain.com/"
    url = "{}/{}".format(baseurl,firmwarename)
    self.driver.find_element_by_id('textarea').send_keys(
        '\nvar device = this\n\nvar url = "' + baseurl + firmwarename + '"\n\nvar conv = TR69.createConnection(device)\n\ntry {'+
   'var uuid = java.util.UUID.randomUUID().toString().replace("-","") \n'+
   'var dlRequest = new TR69.DownloadRequest() \nThis is formatting: ' + url) 

可悲的是产生了这个:

    var dlRequest = new TR69.DownloadRequest() 
    This is formatting: http:/myhiddendomain.com/
    var device = this    

不确定我是否完全可以得到此解决方案。
经过更多搜索后,发现“跳转游标”是一个已知问题,并且“开发人员必须对其进行修复”

2 个答案:

答案 0 :(得分:0)

反斜杠'\'是转义字符

因此,请尝试使用\ /(中间的空格,使其看起来不像V,但您显然希望没有空格)

答案 1 :(得分:0)

使用键。返回

from selenium.webdriver.common.keys import Keys

textarea = self.driver.find_element_by_id('textarea')

textarea.send_keys(r"some text without \n")
textarea.send_keys(Keys.RETURN)
textarea.send_keys(r"some other text without \n")

在第一个不起作用的情况下,Keys.RETURN可以替代Keys.ENTER

或者仍然textarea.submit(),而不是发送RETURN或ENTER键。


我建议您使用.format()来执行字符串格式化操作。

示例:

"url={}/{}".format(url, page)

我还建议您看看'r'和'u'标志。

What exactly do "u" and "r" string flags do, and what are raw string literals?

示例:

path = r"D:\Users\Marco"

要了解有关字符串格式的更多信息,请参见documentation