繁体   English   中英

Python Selenium Chrome Webdriver:绑定方法WebElement.click

[英]Python Selenium Chrome Webdriver : bound method WebElement.click

我是python的新手。 我试图通过提供用户名和密码来提取https://live-cosmos.finq.com/trading-platform/?path=details&symbol=SILVER#login 上的数据。 有用。 但是当尝试点击另一个按钮时它不起作用。 ('存款'或'X'关闭)

存款元素的 HTML:

<button class="btn btn-primary">Deposit</button>

存款元素的快照:

在此处输入图片说明

我的代码是

from selenium import webdriver
import time

driver = webdriver.Chrome(executable_path="C:\\Chromedriver\\Chromedriver.exe")

driver.maximize_window();
driver.get('https://live-cosmos.finq.com/trading-platform/?path=details&symbol=SILVER#login')

time.sleep(5)
driver.find_element_by_xpath("/html/body/div[2]/div[4]/div[2]/div/div/div/div/div/div/form/div/div[3]/div[1]/input").send_keys("username@gmail.com")
driver.find_element_by_xpath("/html/body/div[2]/div[4]/div[2]/div/div/div/div/div/div/form/div/div[3]/div[2]/input").send_keys("password_here")
driver.find_element_by_xpath("/html/body/div[2]/div[4]/div[2]/div/div/div/div/div/div/form/div/div[3]/button").click()
time.sleep(20) # wait for loading
driver.find_element_by_xpath("/html/body/div[8]/div/div/div/div/div[3]/div[1]/div[4]/button").click()

输出是

<bound method WebElement.click of <selenium.webdriver.remote.webelement.WebElement (session="28205c2be15699403ddfcc3f3ce2fa33", element="03ae577c-b3d4-423c-b7ed-1d9c5ea3ea1a")>>

你能帮我解决这个问题(或不同的方法)并继续从网站上抓取一些文本。 先感谢您。

单击带有文本作为存款的元素,您必须引发WebDriverWait ,您可以使用以下任一定位器策略

  • 使用CSS_SELECTOR

     WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.btn.btn-primary"))).click()
  • 使用XPATH

     WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='btn btn-primary' and text()='Deposit']"))).click()
  • 注意:您必须添加以下导入:

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

错误信息:绑定方法 WebElement.click 的<selenium.webdriver.firefox.webelement.firefoxwebelement< div><div id="text_translate"><p> 我编写了一个 Python 脚本,它登录到我的电子邮件帐户并自动发送一些消息。</p><p> 在测试了有效的代码之后,我想简化它(添加单行,减少局部变量的数量......)。 更改后它没有像我预期的那样工作。 完整的错误信息是:</p><pre> &lt;bound method WebElement.click of &lt;selenium.webdriver.firefox.webelement.FirefoxWebElement (session="fa50a977-d210- 4c7f-a836-080014cb9209", element="2548584a-e638-47fd-b40b-615516d0e9c6")&gt;&gt;</pre><p> 我只是将我的脚本的开头发布到第一个错误发生的地方。 当我了解如何避免第一个错误时,我可以修复代码的 rest。</p><p> 我的代码开头的这段代码片段有效:</p><pre> from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC browser = webdriver.Firefox() browser.get('https://protonmail.com/') loginButton = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "a.btn-ghost:nth-child(1)"))) loginButton.click()</pre><p> 我将其更改为以下不起作用的代码:</p><pre> browser = webdriver.Firefox() browser.get('https://protonmail.com/') wait = WebDriverWait(browser, 10) wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "a.btn-ghost:nth-child(1)"))).click()</pre><p> 显然,我在这里违反了一些基本的 Python 编程规则。 谁能向我解释一下,第二个代码片段有什么问题以及为什么会发生这种类型的错误? </p></div></selenium.webdriver.firefox.webelement.firefoxwebelement<>

[英]Error message: bound method WebElement.click of <selenium.webdriver.firefox.webelement.FirefoxWebElement

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 错误信息:绑定方法 WebElement.click 的<selenium.webdriver.firefox.webelement.firefoxwebelement< div><div id="text_translate"><p> 我编写了一个 Python 脚本,它登录到我的电子邮件帐户并自动发送一些消息。</p><p> 在测试了有效的代码之后,我想简化它(添加单行,减少局部变量的数量......)。 更改后它没有像我预期的那样工作。 完整的错误信息是:</p><pre> &lt;bound method WebElement.click of &lt;selenium.webdriver.firefox.webelement.FirefoxWebElement (session="fa50a977-d210- 4c7f-a836-080014cb9209", element="2548584a-e638-47fd-b40b-615516d0e9c6")&gt;&gt;</pre><p> 我只是将我的脚本的开头发布到第一个错误发生的地方。 当我了解如何避免第一个错误时,我可以修复代码的 rest。</p><p> 我的代码开头的这段代码片段有效:</p><pre> from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC browser = webdriver.Firefox() browser.get('https://protonmail.com/') loginButton = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "a.btn-ghost:nth-child(1)"))) loginButton.click()</pre><p> 我将其更改为以下不起作用的代码:</p><pre> browser = webdriver.Firefox() browser.get('https://protonmail.com/') wait = WebDriverWait(browser, 10) wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "a.btn-ghost:nth-child(1)"))).click()</pre><p> 显然,我在这里违反了一些基本的 Python 编程规则。 谁能向我解释一下,第二个代码片段有什么问题以及为什么会发生这种类型的错误? </p></div></selenium.webdriver.firefox.webelement.firefoxwebelement<> 使用Python覆盖selenium中的webElement的.click()方法 Selenium WebDriver Python,搜索WebElement Python Selenium WebDriver Chrome click()无法正常工作 使用 Python,Selenium webdriver click() 方法不起作用 Python中的Selenium WebElement扩展方法 是否可以通过鼠标双击选择文本并通过鼠标将选择文本拖动到 Selenium Webdriver Python 中的另一个 webElement Python Selenium Chrome Web驱动程序 Selenium python chrome webdriver python selenium webdriver chrome
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM