【问题标题】:selenium python delete text between xml tagsselenium python删除xml标签之间的文本
【发布时间】:2017-01-03 04:11:39
【问题描述】:

我正在尝试删除标签之间的文本,但有没有比下面更好的方法

<p>test_line</p>

目前我正在使用动作链

action_chains = ActionChains(driver)
.send_keys(Keys.BACKSPACE).send_keys(Keys.BACKSPACE)

所以我在上面做了 9 次。我看到选项 Keys.DELETE 但它是同一件事

【问题讨论】:

  • 您是否尝试过element.clear(),其中element 是您想要的元素?
  • 是的 clear 不起作用

标签: python xml selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

除了使用 .clear() 只会清除 value 属性 by definition 并且不适用于您的用例之外,您还可以改进当前方法并动态构建您的操作链:

actions = ActionChains(driver)
for _ in range(9):
    actions = actions.send_keys(Keys.BACKSPACE)
actions.perform()

或者,更简单:

actions = ActionChains(driver)
actions.send_keys(Keys.BACKSPACE * 9).perform()

请注意,这仍然是由perform() 发出的单个 selenium 命令

【讨论】:

    【解决方案2】:

    您是否尝试过在 execute_script 的帮助下实现这一目标

    所以在 js 中删除文本或内部 html 您可以按照以下方式进行操作

    例如 document.getElementsByTagName('p').innerHTML = '';

    要在 selenium python 中执行上述操作,您可以尝试以下操作

    driver.execute_script("document.getElementsByTagName('p').innerHTML = '';")

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多