【问题标题】:Python selenium send_keys() escape forward slash in URLPython selenium send_keys() 在 URL 中转义正斜杠
【发布时间】:2022-06-22 19:21:21
【问题描述】:

我尝试使用 Selenium send_keys(url) 发送 URL 比如解析到脚本的URL是https://www.test.com/downloads/myfile.zip

selenium 发送到我的应用程序的 URL 然后变为 https:www.test.comdownloadsmyfile.zip

我尝试了url.replace('/', '\/')url.replace('/', '\\/'),但仍然没有得到正确的 URL。

【问题讨论】:

  • 刚刚添加了以下答案 - 我假设您将密钥发送到 DOM 中的输入字段? - 您使用driver.get(url) 导航页面,如果它不是输入字段,它可能无法按您的预期工作

标签: python selenium


【解决方案1】:

send_keys 可以很好地与正斜杠配合使用 - 很可能这是特定于您的应用程序或您的输入数据的。

这是一些示例代码作为演示:

driver = webdriver.Chrome() # note i modified this to my driver
driver.implicitly_wait(10)

url = "https://www.duckduckgo.co.uk"
driver.get(url)
driver.find_element(By.ID, "search_form_input_homepage").send_keys(url)

这就是您所看到的 - 带有正斜杠:

###########################

另一种设置值的方法是使用 JS。试试这个方法:

url = "https://www.duckduckgo.co.uk" 
driver.get(url)
element= driver.find_element(By.ID, "search_form_input_homepage")#.send_keys(url)
driver.execute_script("arguments[0].value=arguments[1]", element, url)

如果上述示例适用于您在 duckduckgo 上 - 这表明它是您的应用程序或您的数据,而不是您的机器/硒/版本。

接下来您可以尝试排除输入数据并找到问题的边界。 试试硬编码的.send_keys('/')

  • 如果可行,您就知道它是您的输入数据。
  • 如果失败,您知道这是您的应用程序

尝试打印您的数据。

  • 如果它在被解析到您的测试中后有salshes,那就是别的东西了

除此之外 - 请分享更多代码和有关该问题的更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-16
    • 2022-12-03
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    相关资源
    最近更新 更多