如何在循环中发送多个关键字以使用硒进行搜索?

iDevBrandon

我正在尝试从具有多个搜索字词的任何搜索网站下载图片。到目前为止,这就是我这样做的方法,但找不到使其与for in loop一起使用。您能否帮助我使其正常工作,就像我想传入关键字列表(在我的情况下为#elem.send_keys(“ spy”))一样,因此代码会针对列表中的每个项目进行迭代。我的循环原因示例;(

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import urllib.request

driver = webdriver.Chrome()
driver.get("https://anysearchwebsite.com/")
elem = driver.find_element_by_id("nav-chartSearch-input")

# ticker symbols array 
symbols = ['spy', 'aapl', 'msft', 'amnz', 'goog']
count = 1
for i in symbols:
elem.send_keys(i)

# elem.send_keys("spy")


elem.send_keys(Keys.RETURN)
driver.implicitly_wait(2)
imgUrl = driver.find_element_by_css_selector(".chartimg").get_attribute("src")



opener=urllib.request.build_opener()
opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1941.0 Safari/537.36')]
urllib.request.install_opener(opener)
urllib.request.urlretrieve(imgUrl, str(count) + ".jpg")
count = count + 1

错误消息如下所示:[12080:4620:0104 / 151132.576:ERROR:ssl_client_socket_impl.cc(960)]握手失败;返回-1,SSL错误代码1,net_error -113追溯(最近一次通话):

selenium.common.exceptions.StaleElementReferenceException:消息:陈旧元素引用:元素未附加到页面文档中(会话信息:chrome = 87.0.4280.88)

磷酸二氢
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import urllib.request

driver = webdriver.Chrome()
driver.get("https://anysearchwebsite.com/")

# ticker symbols array
symbols = ['spy', 'aapl', 'msft', 'amnz', 'goog']
count = 1
for i in symbols:




    driver.find_element_by_css_selector("input[name='q']").send_keys(i+Keys.RETURN)

    # elem.send_keys("spy")


    
    driver.implicitly_wait(2)
    imgUrl = driver.find_element_by_css_selector(".chartimg").get_attribute("src")


    opener = urllib.request.build_opener()
    opener.addheaders = [
        ('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1941.0 Safari/537.36')]
    urllib.request.install_opener(opener)
    urllib.request.urlretrieve(imgUrl, str(count) + ".jpg")
    count = count + 1
    driver.back()

只需在if语句中找到元素,并在需要时使用driver.back

陈旧的元素表示Dom已更改,当您搜索dom更改的内容时,当您尝试在第二次迭代中将值再次发送给已识别的元素elem时,它将引发陈旧的元素异常

解决方法是在for循环本身中查找元素。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在for循环中获取多个关键字

使用多个关键字进行Hibernate Search的索引搜索

如何在laravel中搜索多个关键字?

如何使用Mat Table按空格分隔的多个关键字进行搜索

如何使用套接字 PYTHON 在循环中发送数据

如何在 Swift 中使用关键字过滤搜索

如何通过输入的任何关键字使用硒搜索网页?

如何进行基因剔除搜索多个关键字以及实时搜索

Java,如何在“ for each”循环中获取当前索引/关键字

如何在此zcat循环中仅找到特定的关键字?

Cython-在for循环中使用“ from”关键字

Rails + PostgreSQL - 使用全文搜索的多个关键字搜索

如何在 Eclipse 类型搜索中搜索关键字

for循环中的let关键字

如何在 Django 中的多列上搜索多个关键字

如何在400多个PDF文件中搜索关键字?

尝试使用imacros循环搜索关键字

如何进行全文本关键字搜索

如何修改此脚本以搜索多个关键字?

如何使用mysqli Prepared语句从搜索字段中使用多个关键字执行LIKE查询

使用 SQL 进行多关键字搜索

在Cakephp中使用foreach搜索多个关键字

使用grep在不同的行上搜索多个关键字

有多个关键字时使用excel搜索功能

如何对在 Django 中使用关键字搜索后显示的对象结果进行排序

在Github中,如何使用多个关键字搜索存储库?

如何使用多个关键字在Google表格中搜索数据?

如何编写 Python 脚本以使用网站的搜索栏在特定网站的数据库中搜索关键字?

使用 continue 关键字进行循环处理