【问题标题】:How to click on the extension button using Selenium如何使用 Selenium 单击扩展按钮
【发布时间】:2020-06-16 14:24:44
【问题描述】:

我正在尝试验证 firefox 中加载的扩展,但代码对我不起作用,附加了 html 并且 xpath 是 //*[@name="extension"]

在火狐浏览器上打开网址about:addons

html 扩展

firefox 版本是 77 和 geckodriver 0.26。 我找不到异常元素

【问题讨论】:

  • 使用名称。它对我有用,或者你可以使用 cssSelector
  • 不适用于我的情况。

标签: selenium selenium-webdriver xpath css-selectors webdriverwait


【解决方案1】:

这样使用:

 //Wait for element to be clickable
    WebDriverWait wait = new WebDriverWait(driver, 15);
    wait.until(ExpectedConditions.elementToBeClickable(By.name("extension")));

    driver.findElement(By.name("extension")).click();

【讨论】:

  • 尝试了等待,但解决方案不起作用,似乎无法找到元素。
【解决方案2】:

根据您提供的html 来单击加载的扩展,您必须诱导WebDriverWait 才能使元素可点击 并且您可以使用以下任一Locator Strategies

  • # imports
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC        
    
    WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.category[name='extension']>span[class='category-name'][data-l10n-id='addon-category-extension']"))).click()
    
  • new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='category' and @name='extension']/span[@class='category-name' and text()='Extensions']"))).click();
    

【讨论】:

  • 问题是,即使等待 10 秒加载页面,也无法找到元素。尝试从控制台对其进行测试,但也无法找到该元素。查看关于:插件的页面。
  • @sourabhrawat 您需要使用您可以提供的尽可能多的信息更新问题,而不是要求贡献者检查页面,从基于文本的相关 HTML 开始。我知道这个问题,但我仍然希望看到您正确地提出问题。
  • ..感谢您的建议..我在评论中也提到了 URL,并且无法复制我为什么放截图的 html 文本..如果你知道问题,那么只有在您知道正确的解决方案时才应该发布
  • 嗨。可以通过右键单击 body 元素,然后单击 Copy as outerHTML 来复制 html。发布的解决方案是可以的。您可能应该发布您使用的 Selenium、geckodriver 和 Firefox 的版本号。同时发布您收到的错误消息。
  • 嘿..无法在此处粘贴复制它的 html 文本。
猜你喜欢
  • 2019-01-02
  • 2020-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-27
  • 2019-06-10
  • 2019-09-01
  • 1970-01-01
相关资源
最近更新 更多