繁体   English   中英

单击带有 Selenium 的按钮,使用按钮文本作为搜索元素

[英]Click on the button with Selenium, using the button text as a search element

我想点击谷歌“新闻”按钮(搜索后)。 我想使用文本News (在我的情况下为“Notizie”)作为元素进行搜索。 谷歌有时会更改元素的名称,所以我想使用“新闻”元素,因为它总是相同的

我用这个,但它不起作用:

WebDriverWait (driver, 20) .until (EC.element_to_be_clickable ((By.CSS_SELECTOR, "div [aria-label = 'News']"))). Click ()

我能怎么做?

在此处输入图像描述

在此处输入图像描述

抱歉耽搁了。

在正确理解您之后,您想通过其文本搜索元素并单击它。

作为记录,您使用WebDriverWait (driver, 20).until (EC.element_to_be_clickable虽然这是一个很好的做法,但您需要了解,如果它是您的第一次单击,那么驱动程序将不会单击,直到所有元素都可见,因此driver.find_element().click()做同样的工作

也是一个快速免责声明,并非所有谷歌搜索都会在选项栏中显示“新闻”按钮,这是您想要的示例代码。

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 ()

另请查看By.PARTIAL_LINK_TEXT

祝你好运,再次为误会道歉,快乐编码:)

更新

似乎By.LINK_NAME过滤器仅通过文本链接或<a>标记查找元素,这就是为什么它不会捕获“工具”按钮,但工具按钮是 static,因此您可以使用一个普通的css selectorxpath

暂无
暂无

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM