当前位置: 首页 > 知识库问答 >
问题:

如何使用python selenium单击文本为bb1的此元素

李烨
2023-03-14
<yt-formatted-string id="channel-title" class="style-scope ytd-account-item-renderer">bb1</yt-formatted-string>

下面是一个危险的find元素,因为索引可能会改变

self.driver.find_element_by_xpath('/html/body/ytd-app/ytd-popup-container/iron-dropdown/div/ytd-multi-page-menu-renderer/div[4]/ytd-multi-page-menu-renderer/div[3]/div[1]/ytd-account-section-list-renderer[1]/div/ytd-account-item-section-renderer/div/ytd-account-item-renderer[4]/paper-icon-item/paper-item-body/yt-formatted-string[1]').click()

共有1个答案

洪德寿
2023-03-14

>

  • 使用CSS_Selector:

    self.driver.find_element_by_css_selector("yt-formatted-string.style-scope.ytd-account-item-renderer#channel-title").click()
    

    使用XPath:

    self.driver.find_element_by_xpath("//yt-formatted-string[@class='style-scope ytd-account-item-renderer' and @id='channel-title'][text()='bb1']").click()
    

    理想情况下,要单击元素,您需要将WebDriverWait导入element_to_be_clickable(),您可以使用以下任何一种定位器策略:

    WebDriverWait(self.driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "yt-formatted-string.style-scope.ytd-account-item-renderer#channel-title"))).click()
    
    WebDriverWait(self.driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//yt-formatted-string[@class='style-scope ytd-account-item-renderer' and @id='channel-title'][text()='bb1']"))).click()
    
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
    • 如何使用python Selenium单击youtube评论中的链接

  •  类似资料:
    • 我想在jQuery的一个警报中获得点击元素的文本。参见下面的示例https://jsfidle.net/pymd4n04/2/ 但当我单击第一次时,将显示空警报,而当我单击第二次时,将显示该值,但显示两次警报。并保持递增警报。 如有任何帮助,我们将不胜感激。 提前致谢

    • 问题内容: 我有以下HTML: 我下面的单击“ Google搜索”按钮的代码在WebDriver中使用Java时效果很好。 我想将JavaScript与WebDriver一起使用以单击按钮。我该怎么做? 问题答案: 通过JavaScript执行点击具有一些您应该注意的行为。例如,如果绑定到元素事件的代码调用,则可能会发现Selenium代码挂起,具体取决于浏览器驱动程序的实现。也就是说,您可以使用

    • 问题内容: 我想在单击的HTML文档中获取当前元素(无论是哪个元素)。我在用: 但是非常奇怪的是,我得到了整个文档的文本,而不是单击的元素。 如何仅获取我单击的元素? 例 如果单击“测试”文本,我希望能够在jQuery中使用读取属性。 问题答案: 您需要使用which是最初触发事件的元素。在您的示例代码指。 在jQuery中,就是… 没有jQuery … 另外,请确保是否需要使用<IE9 代替。

    • 问题内容: 我的页面上有两个元素(两个“取消”元素)。 如何单击第二个元素?显然,我无法获得ID,因为它是在每次访问时随机生成的。我可以使用什么? 问题答案: 1.使用FindElements方法,该方法使用给定的机制查找当前上下文内的所有IWebElement。(在这种情况下,您始终需要知道要查找的元素的索引。) 2.如果这些取消按钮位于不同的部分,则可以通过非ExtJS id属性进行标识。 3

    • 问题内容: 假设我的网页上有这些元素。 我想单击带有文本的链接。如何使用 链接文本 来识别或单击该元素,而没有任何独特的属性,例如id或class。 在.Net中,我可以使用。nightwatch.js中的等效项是什么 问题答案: 定位器在内部使用XPath。 因此,使用XPath单击示例中的第二个链接: 请注意,根据内部HTML的不同,您可能需要连接子级并修剪空格:

    • 我正在尝试使用Selenium/Chrome webdriver编写一个脚本,该脚本将根据标题查找上传到click的视频。标题基于一天中的时间/日期。以下是我到目前为止所做的(在自动登录到页面和视频标题设置之后), 脚本完成后,我得到页面中的所有文本,而不仅仅是视频标题。我该如何改变这一点?我怎样才能得到我点击的按钮?最后一行失败。 这是我在页面上看到的特定按钮, 当我运行代码时,lastUplo