已解决:Selenium 没有正确填写表格
SOLVED: Selenium didn't fill out the form correctly
1。第一个案例
这是我的脚本,我想使用 selenium 登录 google。
## ...
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>
有两个字段:userid 和 serverid。当我在本地主机(我的笔记本电脑)中尝试该脚本时,该脚本可以正常工作。用“79100601”填充 userid,用“2149”填充 serverid。但是,当我将它部署在 VPS 上时,791(与第一个案例 VPS 相同 VPS)。 userid填“791006”,serverid填“012149”。
额外
我已通过打印确保我使用的变量是正确的。
两种情况都没有显示错误日志。并且还尝试使用 selenium 等到 python 休眠 10 秒 .所以,我认为不是由网速慢或元素未完全加载造成的。
问题出在哪里?你有过这样的经历吗?谢谢
根据我的测试,原来这个问题是由我使用的VNC引起的。我不知道确切的问题。但是,我上面提到的错误并没有发生,我的脚本在安装这个包后通常是运行:
sudo apt install tigervnc-xorg-extension tigervnc-viewer
谢谢。
1。第一个案例
这是我的脚本,我想使用 selenium 登录 google。
## ...
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>
有两个字段:userid 和 serverid。当我在本地主机(我的笔记本电脑)中尝试该脚本时,该脚本可以正常工作。用“79100601”填充 userid,用“2149”填充 serverid。但是,当我将它部署在 VPS 上时,791(与第一个案例 VPS 相同 VPS)。 userid填“791006”,serverid填“012149”。
额外
我已通过打印确保我使用的变量是正确的。
两种情况都没有显示错误日志。并且还尝试使用 selenium 等到 python 休眠 10 秒 .所以,我认为不是由网速慢或元素未完全加载造成的。
问题出在哪里?你有过这样的经历吗?谢谢
根据我的测试,原来这个问题是由我使用的VNC引起的。我不知道确切的问题。但是,我上面提到的错误并没有发生,我的脚本在安装这个包后通常是运行:
sudo apt install tigervnc-xorg-extension tigervnc-viewer
谢谢。