微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

__init__() 接受 2 个位置参数,但 3 个被尝试使用 Presence_of_element_located() 等待元素

如何解决__init__() 接受 2 个位置参数,但 3 个被尝试使用 Presence_of_element_located() 等待元素

日志向我抛出这个:

element.until(EC.presence_of_element_located(By.XPATH("//*[@id='menu-item-9145']/a'")))
TypeError: 'str' object is not callable

代码试验:

class Descaro:
    def __init__(self,driver):
        self.driver = driver

    def Descaro(self):
        time.sleep(3)
        self.driver.find_element_by_xpath("//*[@id='splashModal']/a[1]").click()
        print("deberia estar en la pagina de fondo")
        element = webdriverwait(self.driver,10)
        element.until(EC.presence_of_element_located(By.XPATH("//*[@id='menu-item-9145']/a'")))
        element.click()

我已经试过了:

element.until(EC.presence_of_element_located(By.XPATH,'//*[@id="menu-item-9145"]/a''))) 

但也不起作用,因为:

__init__() takes 2 positional arguments but 3 were given

解决方法

您需要注意以下几点:


解决方案

您需要为 element_to_be_clickable() 引入 WebDriverWait,您可以使用以下 Locator Strategy

WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//*[@id='menu-item-9145']/a"))).click()

注意:您必须添加以下导入:

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

参考

您可以在以下位置找到一些相关的详细讨论:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?