【问题标题】:SOLVED: Selenium didn't fill out the form correctly已解决:Selenium 未正确填写表格
【发布时间】:2020-11-21 13:19:30
【问题描述】:

1。第一种情况

这是我的脚本,我想用 selenium 登录谷歌。

## ...
driver.get("https://www.smile.one/customer/account/login")
time.sleep(10)
driver.find_element_by_name('identifier').send_keys(email + Keys.RETURN)
time.sleep(5)
driver.find_element_by_name('password').send_keys(mantra + Keys.RETURN)
## ...

当我在笔记本电脑上尝试时,上面的脚本可以正常工作。标识符字段填写“exampleemail24”,密码填写“example24”。

但是,当我在 VPS(AWS EC2 t3.small 2vCPU 2GB RAM)上使用上面的脚本时,它不起作用。标识符字段由“exampleemail24”正确填写,但密码由“example”填写。

2。第二种情况

我尝试了另一种形式,但遇到了同样的问题。 这是我的脚本。

time.sleep(3) userid_form = driver.find_element_by_id('museid')
serverid_form = driver.find_element_by_id('mserverid')
userid_form.send_keys(data['user_id'])
serverid_form.send_keys(data['server_id'] + Keys.SHIFT, Keys.TAB)

这是表格。

<form id="mpay" action="/merchant/pay" method="post">
    <div class="sectionId-bor">
       <input type="tel" class="sectionId-input" id="museid" placeholder="USER ID" value="">
       <input type="tel" class="sectionId-input" id="mserverid" placeholder="Server ID" value="">
    </div>
</form>

有两个字段:useridserverid。当我在 localhost(我的笔记本电脑)中尝试该脚本时,该脚本可以正常工作。用“79100601”填充userid,用“2149”填充serverid。但是,791 当我将它部署在 VPS 上时(与第一个案例 VPS 相同的 VPS)。 userid 填充了“791006”和 serverid“012149”。

附加

我已通过打印我使用的变量来确保它们是正确的

两种情况都没有显示错误日志。并且还尝试使用 selenium 等到和 python 睡眠 10 秒。所以,我认为不是由于网络连接速度慢或元素未完全加载造成的。

问题出在哪里?你有过这样的经历吗?谢谢。

【问题讨论】:

  • 您使用的是哪个版本的 selenium?
  • @cheshire(AWS EC2 和我的本地笔记本电脑)都在使用 Selenium v​​3.141.0。此外,相同的 chrome 和 chromedriver 版本(87.0.4280)。

标签: python selenium webdriver selenium-chromedriver


【解决方案1】:

根据我的测试,这个问题是由我使用的 VNC 引起的。我不知道确切的问题。但是,我上面提到的错误并没有发生,我安装这个包后我的脚本运行正常:

sudo apt install tigervnc-xorg-extension tigervnc-viewer

谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-18
    • 2019-10-17
    • 1970-01-01
    • 2018-09-25
    • 2016-01-22
    • 2021-08-02
    • 1970-01-01
    相关资源
    最近更新 更多