首页 > 解决方案 > Python Selenium 通过 .sendkeys 将变量输出发送到元素问题

问题描述

当我在 Chrome 上usrname = 'usernamefoo'通过 向注册表单发送一个普通的静态字符串时.sendkeys,它工作正常。但是,如果我发送usrname = rand_name_1 + rand_name_2 + rand_name_3发生奇怪事情的输出,它会按下注册按钮。脚本中没有指向此元素的代码。我通过 .sendkeys 直接传递变量的任何元素都会发生同样的情况,但如果它是字符串则不会。是因为它从变量发送直接输入还是可能是一个错误?顺便说一句,注册按钮位于 Web 表单的最末端。

*编辑

我认为它在写入每个变量后发送一个“返回”usrname

在控制台中显示:

作为的输出ursname

如何格式化ursname没有回车的输出?以防万一这是实际问题?

我将添加usrname代码的构造

rand_name_1 = random.choice(open('dognames.txt').readlines())
rand_name_2 = random.choice(open('randomshit.txt').readlines())
rand_name_3 = random.choice(open('Randomlovenames.txt').readlines())

usrname = rand_name_1 + rand_name_2 + rand_name_3

所以我得出的结论是它在变量输出中确实有一个 /n

我运行了一个解包并返回了这个结果

['d', 'u', 'k', 'e', '\n', 's', 'u', 'm', '\n', 'b', 'r', 'e', 'a', 'k', '\n']

如果我想出如何取出/n,我会在这里发布。

标签: pythonstringseleniumvariables

解决方案


所以这是导致问题的随机列表的 \n 形式

我用了

rand_name_1 = rand_name_1.strip('\n')
rand_name_2 = rand_name_2.strip('\n')
rand_name_3 = rand_name_3.strip('\n')

去掉回车,可能有一种更简单的方法,但它对我有用,暂时没问题


推荐阅读