Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Selenium中文本字段上的图像文件后插入文本?_Python_Selenium_Textfield - Fatal编程技术网

Python 如何在Selenium中文本字段上的图像文件后插入文本?

Python 如何在Selenium中文本字段上的图像文件后插入文本?,python,selenium,textfield,Python,Selenium,Textfield,我想通过.send_keys()将文本添加到文本字段输入,但在图像文件之后 但是,由于某些原因,Selenium总是在图像文件之前添加文本,即使我在发送文本输入之前添加了图像文件 例如: image_button.send_keys(IMAGE_FILEPATH) textfield.send_keys("text to insert") image_按钮是我通过driver实例获得的输入标记,它位于文本字段之前。通过.send_keys()方法发送图像文件后,它将显示在文本字段中 image

我想通过.send_keys()将文本添加到文本字段输入,但在图像文件之后

但是,由于某些原因,Selenium总是在图像文件之前添加文本,即使我在发送文本输入之前添加了图像文件

例如:

image_button.send_keys(IMAGE_FILEPATH)
textfield.send_keys("text to insert")
image_按钮是我通过driver实例获得的输入标记,它位于文本字段之前。通过.send_keys()方法发送图像文件后,它将显示在文本字段中

image_front_button.send_keys(image_file)
for i in range(2):
    front_textfield.send_keys(Keys.ARROW_DOWN)
    front_textfield.send_keys(Keys.ARROW_RIGHT)
front_textfield.send_keys(text_front)
但是,我不确定如何在文本字段的图像之后添加文本。可能吗


下面是屏幕截图,代码如下所示:

front_textfield, back_textfield = driver.find_elements_by_xpath("//div[@class='richEditor']")
image_front_button, image_back_button = driver.find_elements_by_xpath("//input[@accept='image/*']")
audio_front_button, audio_back_button = driver.find_elements_by_xpath("//input[@accept='audio/*']")
image_front_button.send_keys(image_file)
front_textfield.send_keys(text_front)
audio_front_button.send_keys(audio_file)

我试着在我的Jupyter笔记本上一个接一个地运行每一个代码,但还是失败了

以下是与文本字段关联的事件:


Hmmm解决方法之一是添加以下代码,这将在文本字段中移动光标

image_front_button.send_keys(image_file)
for i in range(2):
    front_textfield.send_keys(Keys.ARROW_DOWN)
    front_textfield.send_keys(Keys.ARROW_RIGHT)
front_textfield.send_keys(text_front)

在运行
textfield.send_键(“要插入的文本”)
之前,是否可以尝试使用预期条件等待出现
textfield
。我相信图像提交事件没有触发,或者您可能试图输入文本太早(我在文件上载完成之前)。@supputuri我输入了,但也没有工作。我发现原因很可能是因为当我手动添加图像并点击文本字段后,我无法开始键入文本。只有在我用光标点击文本的空白区域后,我才能输入文本。我认为这可能是这个问题的原因。不过,我还不知道如何在Selenium上解决这个问题。有什么想法吗?你能按照上面提到的方法检查与textfield关联的事件吗?你能添加事件的屏幕截图吗?我可以给你一小段代码,你可以试着用这个事件来模拟textfield点击事件。在这个代码前面放一个断点,然后逐步执行。它不应该以与代码不同的顺序放置文本。这似乎极不可能,如果不是不可能的话。代码不会按顺序运行。在运行textfield之前,是否可以尝试使用预期条件等待textfield的出现。发送键(“要插入的文本”)。我相信图像提交事件没有触发,或者您可能试图输入文本太早(我在文件上载完成之前)。@supputuri我输入了,但也没有工作。我发现原因很可能是因为当我手动添加图像并点击文本字段后,我无法开始键入文本。只有在我用光标点击文本的空白区域后,我才能输入文本。我认为这可能是这个问题的原因。不过,我还不知道如何在Selenium上解决这个问题。有什么想法吗?你能按照上面提到的方法检查与textfield关联的事件吗?你能添加事件的屏幕截图吗?我可以给你一小段代码,你可以试着用这个事件来模拟textfield点击事件。在这个代码前面放一个断点,然后逐步执行。它不应该以与代码不同的顺序放置文本。这似乎极不可能,如果不是不可能的话。代码不会出现问题。