Selenium preform双击+使用javascript进行文本编辑

Selenium preform双击+使用javascript进行文本编辑,javascript,python,selenium,automation,Javascript,Python,Selenium,Automation,我想使用python的selenium库自动化canva.com站点 我需要做什么 我需要插入数据到canva内的字段非常简单。要强制canva保存我的更改,我需要首先双击元素,然后更新文本 我有什么问题 双击元素后,它正在更改。。。我无法更改python元素的文本。要改变它,我需要再次找到那个元素,并且只需要改变它我得到一个错误,元素没有附加到页面 def获取报告参数字段驱动程序,键: 字段={} 所有段落=驱动程序。按标签查找元素 对于所有段落中的段落: key=re.sub'+','',段

我想使用python的selenium库自动化canva.com站点

我需要做什么

我需要插入数据到canva内的字段非常简单。要强制canva保存我的更改,我需要首先双击元素,然后更新文本

我有什么问题

双击元素后,它正在更改。。。我无法更改python元素的文本。要改变它,我需要再次找到那个元素,并且只需要改变它我得到一个错误,元素没有附加到页面

def获取报告参数字段驱动程序,键: 字段={} 所有段落=驱动程序。按标签查找元素 对于所有段落中的段落: key=re.sub'+','',段落.text.upper.split:[0] 如果输入钥匙: 如果输入fields.keys: 字段[键]。追加段落 其他: 字段[键]=[段落] 返回字段 更新字段列表 canva_fields=获取报告参数字段驱动程序 单击要更改的字段 canva_字段[canva_键][任务索引]。单击 canva_字段[canva_键][任务索引]。单击 更新字段列表 canva_fields=获取报告参数字段驱动程序 更新数据 值=键+:+键[键] driver.execute_scriptarguments[0]。textContent=arguments[1];,canva_字段[canva_键][任务索引],值 问题是get_report_params_字段只是遍历页面上的所有段落并选择我需要的一个字段,它的效率不高,所以我只想使用它一次

因此,我正在寻找一种方法来获取我单击的webelement,方法是使用它的xpath、位置和webelement的其他唯一id。我的意思是,我需要一个选项来使用webelement属性再次查找相同的元素,而在检查chrome中的xpath之前,我不知道这些属性,而且我不能使用元素的文本,因为它会不时地发生变化


我曾想过双击并更改oneliner javascript脚本中的文本,但我没有找到这样做的方法

您可以在dbl单击之前和之后共享元素的html吗。似乎我们需要登录详细信息来访问您正在拍摄的元素。。基本上是使用动作将您的点击和可能的文本输入串在一起。如果页面在元素未附加到页面的情况下发生更改,您可能需要在此之前立即停止并再次找到该元素。是否尝试使用操作双击然后发送文本?如果你没有尝试一下,应该可以解决这个问题。下面是使用操作双击的代码。动作动作=新动作驱动程序;WebElement elementLocator=driver.findElementBy.idID;actions.doubleClickelementLocator.perform@supputuri元素完全相同

http://domain_0

我知道您希望使用javascript,但在这种情况下,我认为您可以通过优化get_report_params_字段并正确等待来获得更简单的解决方案。您可以在单击dbl之前和之后共享元素的html。似乎我们需要登录详细信息来访问您正在拍摄的元素。。基本上是使用动作将您的点击和可能的文本输入串在一起。如果页面在元素未附加到页面的情况下发生更改,您可能需要在此之前立即停止并再次找到该元素。是否尝试使用操作双击然后发送文本?如果你没有尝试一下,应该可以解决这个问题。下面是使用操作双击的代码。动作动作=新动作驱动程序;WebElement elementLocator=driver.findElementBy.idID;actions.doubleClickelementLocator.perform@supputuri元素完全相同

http://domain_0

我知道您希望使用javascript,但在这种情况下,我认为您可以通过优化get_report_params_字段并正确等待来获得更简单的解决方案