【问题标题】:Pressing Button/Div on Webpage with Python Script使用 Python 脚本在网页上按下按钮/Div
【发布时间】:2021-07-01 00:40:29
【问题描述】:

这可能是一个长镜头,但我真的希望有办法!提供背景知识,我一直在使用 Python 开发算法交易者,并希望定期自动使用它购买资产,特别是加密货币。

我有一个网址:https://testnet.phemex.com/spot/trade/BTCUSDT 到我尝试使用的交易所。以上是他们的测试网,但这里是他们交易 BTCUSDT 的实时交易页面:https://phemex.com/spot/trade/BTCUSDT

他们收取合理的费用,但按照我的交易费率,我试图避免费用。更重要的是,他们的交易在网络或移动设备上是免费的,但 API 交易收取 0.1% 的费用。因此,我无法有利地使用他们的 API。所以,我很好奇是否有一个可以作为变通方法创建的功能,自动化网页上的简单点击次数。

所以,我有一个函数可以指示何时买入或卖出。一旦确定了这一点,我想要一个函数在调用时购买网页上的资产,而另一个函数则出售。

这很简单,在这两种情况下都可以通过单击三个按钮来完成。

看截图:

我只需要点击购买按钮、100% 按钮和绿色的“购买 BTC”按钮就可以很明显地购买!

要出售,我需要做同样的事情,除了先点击出售,如下面的屏幕截图所示:

我不确定这是否可行,因为我没有太多通过 Python 与网页交互的经验,但非常感谢任何人提供的任何帮助或建议。在网页上执行这些任务的功能将非常有用!感谢您提供的任何帮助,如果我能以任何方式提供指导或澄清任何事情,请告诉我!

-修订- 这就是我认为的 html <div class="wrap pr df fdc p16 pb8 svelte-9kakd1"><div class="wrap df T2 f14 ovh svelte-4kgq9l"><span class="f1 tc cp svelte-4kgq9l buy">BUY</span> <span class="f1 tc cp svelte-4kgq9l sell-border">SELL</span></div> <div class="f14 lh32 fw2 wsn usn T2 bb svelte-193fcus" style="display:flex; margin-top: 10px;"><div class="wrap pr lh40 cp T3 svelte-2y43eg active">Limit</div> <div class="wrap pr lh40 cp T3 svelte-2y43eg">Market</div> <div class="wrap pr lh40 cp T3 svelte-2y43eg">Conditional</div></div> <div class="f1 pr"><div><div><div class="mt16"><span class="svelte-vtfoqq df"><input class="fw2 T2 svelte-vtfoqq" type="text"> <label class="wsn T3 svelte-vtfoqq">Limit Price USDT</label> <button disabled="" class="svelte-vtfoqq"></button> <button class="svelte-vtfoqq"></button></span></div> <div class="mt16 df mb10"><div class="f1 mr16" style="margin-top: 3px;"><span class="svelte-vtfoqq df"><input class="fw2 T2 svelte-vtfoqq" type="text"> <label class="wsn T3 svelte-vtfoqq">Amount to Receive</label> <button disabled="" class="svelte-vtfoqq"></button> <button class="svelte-vtfoqq"></button></span></div> <div style="width: 60px;"><div class="wrap pr lh40 T2 svelte-1bqfv8r"><div class="df"><span class="f1 cp wp100 cb ml4 svelte-1bqfv8r">BTC</span> <i class="iconfont arrow pa svelte-1bqfv8r"></i></div> <ul class="pa B3 svelte-1bqfv8r"><li class="T2 cp svelte-1bqfv8r"><span class="f1 cp wp100 cb ml4">BTC</span> </li><li class="T2 cp svelte-1bqfv8r"><span class="f1 cp wp100 cb ml4">USDT</span> </li></ul></div></div></div> <div class="wrap df f12 lh20 svelte-1cl6icl"><div class="f1 item tc cp svelte-1cl6icl">25%</div><div class="f1 item tc cp svelte-1cl6icl">50%</div><div class="f1 item tc cp svelte-1cl6icl">75%</div><div class="f1 item tc cp svelte-1cl6icl">100%</div></div> <div class="mt12"><div class="df f1 lh20 f12 wsn jcsb" style=""><span class="T3">Max Buy</span><span class="ml4 T2">0.000000 BTC</span></div> <div class="df f1 lh20 f12 wsn jcsb" style="margin-top: 5px;"><span class="T3">Available Balance</span><span class="ml4 T2">0.00 USDT</span></div></div> <div class="df mt8"><button class="ga svelte-1cyhsgj buy" data-gac="order.spot" data-gaa="link_click" data-gal="spot.place_order" disabled=""><div class="pv8"><div class="lh18 f14">Buy BTC</div> <div class="f12 mt2"><span class="op6 svelte-wd4vpe">Cost</span> 0.00 USDT</div></div></button></div> <div class="usn mt8"><div class="wrap pr lh40 T2 svelte-1bqfv8r"><div class="df"><span class="f1 cp wp100 cb ml4 svelte-1bqfv8r">GoodTillCancel</span> <i class="iconfont arrow pa svelte-1bqfv8r"></i></div> <ul class="pa B3 svelte-1bqfv8r"><li class="T2 cp svelte-1bqfv8r"><span class="f1 cp wp100 cb ml4">GoodTillCancel</span> </li><li class="T2 cp svelte-1bqfv8r"><span class="f1 cp wp100 cb ml4">ImmediateOrCancel</span> </li><li class="T2 cp svelte-1bqfv8r"><span class="f1 cp wp100 cb ml4">FillOrKill</span> </li></ul></div></div></div></div> </div></div>

购买按钮:<span class="f1 tc cp svelte-4kgq9l buy">BUY</span>

卖出按钮:<span class="f1 tc cp svelte-4kgq9l sell-border">SELL</span>

100% 按钮:<div class="f1 item tc cp svelte-1cl6icl">100%</div>

执行按钮:<div class="df mt8"><button class="ga svelte-1cyhsgj buy" data-gac="order.spot" data-gaa="link_click" data-gal="spot.place_order" disabled=""><div class="pv8"><div class="lh18 f14">Buy BTC</div> <div class="f12 mt2"><span class="op6 svelte-wd4vpe">Cost</span> 0.00 USDT</div></div></button></div>

【问题讨论】:

  • 能否包含相关元素的完整 html 代码。
  • @ArundeepChohan,我添加的是你要找的东西吗?

标签: python html selenium automation


【解决方案1】:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10)
driver.get('yoururl')
wait.until(EC.element_to_be_clickable((By.XPATH,"//span[.='BUY']"))).click()
wait.until(EC.element_to_be_clickable((By.XPATH,"//div[.='100%']"))).click()

应该是简单的点击BUY或者100%元素。

【讨论】:

    猜你喜欢
    • 2017-01-16
    • 2015-09-19
    • 2023-01-12
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    相关资源
    最近更新 更多