【问题标题】:Selenium not finding locators on Amazon siteSelenium 在亚马逊网站上找不到定位器
【发布时间】:2018-12-25 07:38:21
【问题描述】:

我无法在 amazon.com 上使用 selenium + python 定位元素。 试图按 id 点击搜索按钮,或获取显示的搜索结果数。 只能单击一次搜索,下一次尝试我得到“NoneType”对象没有属性“单击”。 基本场景 - 打开亚马逊,在搜索字段中输入值,然后单击搜索按钮,然后获取显示结果的数量。

我尝试使用 Xpath,按元素层次结构向上,以确保我可以找到任何东西。没有任何效果,似乎该页面以某种方式不可见。

def click_search_button(self):
    self.find_element(*AmazonLocators.SEARCH_BTN).click()

def find_num_of_results(self):
    raw_num = self.find_element(*AmazonLocators.NUMBER_OF_RESULTS).text

class AmazonLocators(object):
    SEARCH_BTN = (By.CLASS_NAME, 'nav-input')
    NUMBER_OF_RESULTS = (By.ID, 's-result-count')

【问题讨论】:

  • 点击前等待元素

标签: python selenium


【解决方案1】:

有时元素会在点击后对 Dom 隐藏。尝试使用 JavaScript 执行器:

    WebElement element = driver.findElementbyxpath("//[@id="js_usercenter_left"]/dl/dd[2]/a");

   JavascriptExecutor executor = (JavascriptExecutor)driver;

   executor.executeScript("arguments[0].click();", element);

【讨论】:

  • 我认为你需要在参数[0]之前添加return。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-24
  • 1970-01-01
  • 1970-01-01
  • 2016-11-26
  • 1970-01-01
  • 2020-06-26
  • 1970-01-01
相关资源
最近更新 更多