灰晨 发表于 2021-7-22 15:16:26

爬虫selenium定位不到输入框和按钮


我使用selenium一路来到这里,找不到输入框和下面那个“Add to cart”的按钮
无法输入数量并加入购物车
该网站网址:
www.ti.com

商品搜TL072CP就行

z5560636 发表于 2021-7-22 15:16:27

插个眼
附带一个网上的解决办法

def _return_element(self, ele):
      return self.driver.driver.execute_script("return arguments.shadowRoot", ele)
   
    def verify_dl(self):
      """
      返回最近一个下载,目前仅支持chrome
      :return:
      """
      self.driver.execute_script('window.open("")')
      win_lst = self.driver.window_handles
      self.driver.switch_to_window(win_lst[-1])
      self.driver.get('chrome://downloads')
      first_sd = self._return_element(self.driver.find_element_by_css_selector('css=downloads-manager'))
      second_sd = self._return_element(first_sd.find_element_by_css_selector("#downloadsList>downloads-item"))
      name, dl_url = second_sd.find_element_by_css_selector('#details').text.split('\n')[:2]
      self.driver.close()
      self.driver.switch_to_window(win_lst)
      return {'name': name, 'dl_url': dl_url}

qiuyouzhi 发表于 2021-7-23 10:38:28

我看这个按钮需要加载一下才会出现,你可以加一个 WebDriverWait

灰晨 发表于 2021-7-23 14:09:33

z5560636 发表于 2021-7-23 13:42
插个眼
附带一个网上的解决办法

谢谢,已解决,我网上找了一天多,头都快秃了,附上解决方法:from selenium import webdriver

browser = webdriver.Chrome()
browser.get('https://login.ti.com')

#此处省略。。。过程

#找到shadowRoot的上级标签
a = browser.find_element_by_tag_name('ti-add-to-cart')
#进入shadowRoot
b = browser.execute_script('return arguments.shadowRoot', a)
#正常找shadowRoot下的标签
settingsPage = b.find_element_by_tag_name('ti-form-element')

oycl 发表于 2021-11-2 12:20:12

灰晨 发表于 2021-7-23 14:09
谢谢,已解决,我网上找了一天多,头都快秃了,附上解决方法:

加下微
页: [1]
查看完整版本: 爬虫selenium定位不到输入框和按钮