python 在Linux的Selenium Chrome驱动程序上发送send_keys上的斜线

bejyjqdl  于 2023-02-07  发布在  Python
关注(0)|答案(1)|浏览(137)

我一直在尝试发送一个URL链接到一个文本区域。我使用python3和Chrome版本109.0.5414.119。它在我的本地OSX机器上运行良好,但当我试图在Linux机器上自动化它时。它开始表现得很奇怪。所以我有这种感觉,它可能是Chrome驱动程序相关的问题。
当我发送这样的URL时:

l.send_keys("https://google.com")

而是变成:

/google.comhttps:

然后,我尝试通过发送以下代码来调试此行为:

>>> l.send_keys("/") # /|
>>> l.send_keys("/") # |/

所以光标的位置在第二个/的行前面。我没有预料到这一点。我想知道你是否可以说明如何解决这个问题?

ee7vknir

ee7vknir1#

可能您试图过早地在<input>字段中调用 send_keys(),甚至在元素正确地具有rendered之前。
溶液
理想情况下,要向元素发送 * 字符序列 *,需要为element_to_be_clickable()引入WebDriverWait,可以使用以下locator strategies之一:

WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "element_css_locator"))).send_keys("https://google.com")

注意:您必须添加以下导入:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

相关问题