是否可以在在线Excel表中使用Selenium for Python编辑单元格的值?
我想模拟用户单击一个单元格并键入它的行为。
我可以读取表中存在的数据,但是不知道如何编辑 单元格的内容。读取值可以这样完成:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver=webdriver.Chrome('path_to_driver')
driver.get('my_Online_Excel_sheet')
driver.switch_to.frame('WebApplicationFrame')
# return the text in the cell
driver.find_element_by_xpath('//*[@id="gridRows"]/div[3]/div[3]/div').text
然后我自然地尝试了Selenium的send_keys
方法,但据我所知,它不适用于这些类型的元素。
我还尝试使用execute_script
,它看起来确实很有希望,可以正常运行,但实际上并没有改变单元格中的值。
cell=driver.find_element_by_xpath('//*[@id="gridRows"]/div[3]/div[3]/div')
cell.click()
driver.execute_script("arguments[0].value = 'some_new_value';", cell)
以下是与表格中的单元格相对应的HTML元素(当前值为101):
<div class="cv-nwr ewr-vab" style="width: 61px; max-heith: 19px; text-align: right;">101</div>
答案 0 :(得分:0)
好的。我可以使用以下方法更改内部HTML来更改单元格的值:
driver.execute_script("arguments[0].innerHTML = 'new_text';", cell)
不幸的是,刷新页面后更改将不成立,但是也许有一种方法可以以编程方式保存工作表,或者通过其他方式保留新值。