很抱歉耽误了您的时间.
在正确理解您之后,您想要根据元素的文本搜索元素并单击它.
根据记录,您使用WebDriverWait (driver, 20) .until (EC.element_to_be_clickable
,虽然这是一个很好的练习您需要了解,如果它是您的第一次点击,那么驱动程序不会点击,直到所有元素都可见,因此driver.find_element().click()
做同样的工作
还有一个快速声明,并不是所有的Google搜索都会在选项栏中显示"新闻"按钮,以下是您想要的示例代码.
from time import sleep
from seleniumwire import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('https://www.google.com/search?q=weather')
newsButton = driver.find_element(By.LINK_TEXT, 'News')
newsButton.click()
sleep(5)
您可以根据By.LINK_TEXT
的文本来查找元素
这就是你的代码:
WebDriverWait (driver, 20) .until (EC.element_to_be_clickable ((By.LINK_TEXT, "News"))). Click ()
还可以 checkout By.PARTIAL_LINK_TEXT
美元
祝你好运,再次为误会道歉,祝你编码愉快:)
似乎By.LINK_NAME
过滤器只通过链接的文本或<a>
标签中的元素来查找元素,这就是为什么它不能捕捉"工具"按钮,但工具按钮是静态的,因此你可以用普通的css selector
或xpath
来访问它