1、将元素滚动到可视区
self.browser.execute_script("arguments[0].scrollIntoView(true);", price[0])
或者(以上代码有时候没效果所以扩展了此函数)
def scroll_shim(self, ele):
x = ele.location['x']
y = ele.location['y']
scroll_by_coord = 'window.scrollTo(%s,%s);' % (
x-50,
y-150
)
scroll_nav_out_of_way = 'window.scrollBy(0, -120);'
self.browser.execute_script(scroll_by_coord)
# passed_in_driver.execute_script(scroll_nav_out_of_way)
2、元素不可点击
可以将元素滚动到可视区,再点击
或者使用js点击
self.browser.execute_script("arguments[0].click();", ele)
3、反防爬模拟人输入
def _input_simulation(self, e, text):
for i in range(len(text)):
sleep_time = random.randint(8, 30)
time.sleep(sleep_time / 10)
e.send_keys(text[i])
4、反防爬之使用text 定位元素,文字是面对用户的不可能经常变化
submit = self.browser.find_element_by_xpath(".//*[text()='隐藏']")
input = self.browser.find_element_by_xpath(".//*[@placeholder='请输入您要搜索的商品、类目或链接']")
5、窗口最大化
self.browser.maximize_window()
待续...