如何使用Python获取WebDriver以删除融合页面表中的现有值?

时间:2018-11-13 03:23:07

标签: selenium-webdriver confluence

以下是合流页面的HTML代码:

tbody
  tr
    td
      some text here


  tr
    td some text here

  tr 
    td 
      <span>some text here</span>

如果我单击一个元素,然后执行send_keys(“ XYZ”),那么所有这些都将进入现有文本的中间。例如,它可能导致以下任何情况:

soXYZme text here
some tXYZext here
soXYZme text hXYZere

我也尝试过双击该元素,但这也无法正常工作。那只会删除现有文本的一部分。

我知道在任何地方都没有“ input”标签的情况下,如何清除td元素中的现有值。因此,我不能使用WebDriver的clear()方法。

编辑:请注意,有时单元格也将具有空白值。

1 个答案:

答案 0 :(得分:0)

我当时正在使用ActionChains编辑汇合单元。而ActionChains由于某种原因未提供clear()方法。

但是,我能够通过直接调用webdriver实例的clear函数来解决此问题。所以我的代码看起来像这样的融合:

actions = ActionChains(driver)

#ACTIONCHAINS DOES NOT HAVE A CLEAR FUNCTION
driver.find_element_by_xpath("(//td[contains(@class, 'confluenceTd')])[{0}]".format(i) ).clear() 

actions.move_to_element(driver.find_element_by_xpath("(//td[contains(@class, 'confluenceTd')])[{0}]".format(i)))
actions.double_click()
actions.send_keys("SOME DATA")
actions.perform()