鱼C论坛

 找回密码
 立即注册
查看: 2456|回复: 4

[已解决]爬虫selenium定位不到输入框和按钮

[复制链接]
发表于 2021-7-22 15:16:26 | 显示全部楼层 |阅读模式
60鱼币
捕获.PNG
我使用selenium一路来到这里,找不到输入框和下面那个“Add to cart”的按钮
无法输入数量并加入购物车
该网站网址:
www.ti.com

商品搜TL072CP就行
最佳答案
2021-7-22 15:16:27
插个眼
附带一个网上的解决办法

  1. def _return_element(self, ele):
  2.         return self.driver.driver.execute_script("return arguments[0].shadowRoot", ele)
  3.    
  4.     def verify_dl(self):
  5.         """
  6.         返回最近一个下载,目前仅支持chrome
  7.         :return:
  8.         """
  9.         self.driver.execute_script('window.open("")')
  10.         win_lst = self.driver.window_handles
  11.         self.driver.switch_to_window(win_lst[-1])
  12.         self.driver.get('chrome://downloads')
  13.         first_sd = self._return_element(self.driver.find_element_by_css_selector('css=downloads-manager'))
  14.         second_sd = self._return_element(first_sd.find_element_by_css_selector("#downloadsList>downloads-item"))
  15.         name, dl_url = second_sd.find_element_by_css_selector('#details').text.split('\n')[:2]
  16.         self.driver.close()
  17.         self.driver.switch_to_window(win_lst[0])
  18.         return {'name': name, 'dl_url': dl_url}
复制代码

最佳答案

查看完整内容

插个眼 附带一个网上的解决办法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-22 15:16:27 | 显示全部楼层    本楼为最佳答案   
插个眼
附带一个网上的解决办法

  1. def _return_element(self, ele):
  2.         return self.driver.driver.execute_script("return arguments[0].shadowRoot", ele)
  3.    
  4.     def verify_dl(self):
  5.         """
  6.         返回最近一个下载,目前仅支持chrome
  7.         :return:
  8.         """
  9.         self.driver.execute_script('window.open("")')
  10.         win_lst = self.driver.window_handles
  11.         self.driver.switch_to_window(win_lst[-1])
  12.         self.driver.get('chrome://downloads')
  13.         first_sd = self._return_element(self.driver.find_element_by_css_selector('css=downloads-manager'))
  14.         second_sd = self._return_element(first_sd.find_element_by_css_selector("#downloadsList>downloads-item"))
  15.         name, dl_url = second_sd.find_element_by_css_selector('#details').text.split('\n')[:2]
  16.         self.driver.close()
  17.         self.driver.switch_to_window(win_lst[0])
  18.         return {'name': name, 'dl_url': dl_url}
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-23 10:38:28 | 显示全部楼层
我看这个按钮需要加载一下才会出现,你可以加一个 WebDriverWait
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-7-23 14:09:33 | 显示全部楼层
z5560636 发表于 2021-7-23 13:42
插个眼
附带一个网上的解决办法

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

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

  4. #此处省略。。。过程

  5. #找到shadowRoot的上级标签
  6. a = browser.find_element_by_tag_name('ti-add-to-cart')
  7. #进入shadowRoot
  8. b = browser.execute_script('return arguments[0].shadowRoot', a)
  9. #正常找shadowRoot下的标签
  10. settingsPage = b.find_element_by_tag_name('ti-form-element')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-2 12:20:12 From FishC Mobile | 显示全部楼层
灰晨 发表于 2021-7-23 14:09
谢谢,已解决,我网上找了一天多,头都快秃了,附上解决方法:

加下微
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 16:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表