python - 如果 Elif 问题 / Selenium Python
问题描述
我制作了以下代码来抓取一些网站。使用 Selenium 在研究栏上迭代产品代码列表。如果没有找到结果(if driver.find_element_by_css_selector("div[class='search-did-you-mean']"):
),我只需清除研究栏以进行另一次搜索。如果有一些结果(elif driver.find_element_by_css_selector("div[class='result-search']"):
),我会刮掉它
这是代码:
for product in product_list:
inputElement = driver.find_element_by_id("q")
inputElement.send_keys(product[0])
inputElement.send_keys(Keys.ENTER)
inputElement.click()
time.sleep(5)
if driver.find_element_by_css_selector("div[class='search-did-you-mean']"):
time.sleep(5)
clearResearch = driver.find_element_by_id("q")
WebDriverWait(driver, 10).until_not(EC.visibility_of_element_located((By.ID, "overley")))
clearResearch.send_keys(Keys.CONTROL + "a")
clearResearch.send_keys(Keys.DELETE)
elif driver.find_element_by_css_selector("div[class='result-search']"):
time.sleep(5)
item['price'] = driver.find_element_by_css_selector("span[class='sale-price']").text
item['desc'] = driver.find_element_by_css_selector("h3[class='product-name']").text
print(item)
列表的第一个产品代码没有结果,因此将其清除并给出新代码。第二项出现问题,有结果,但我的 elif 条件似乎不理解,因为我得到一个Unable to locate element: div[class='search-did-you-mean']错误。
你知道我的代码有什么问题吗?非常感谢
解决方案
如果没有找到元素,这是 selenium 行为将抛出异常,将其包装在try-except
first_product = None
try:
first_product = driver.find_element_by_css_selector("div[class='search-did-you-mean']"
except: pass
if first_product:
.....
推荐阅读
- javascript - 使用 JavaScript 触发 Google Analytics 注册与单页网站的交互以降低感知跳出率
- tensorflow - 为什么我的梯度下降优化器在接近解决方案后会爆炸?
- javascript - 使用 if elseif 语句在 React 组件中未返回正确结果
- amazon-web-services - 'aws s3 sync' 仅复制具有特定扩展名的文件
- python - 如何在张量流中找到矩阵行的共同值
- python - 使用 TensorFlow 对实时视频进行分类
- c# - 使用检查器为动态列表分配 ButtonClickedEvent 时出现 Unity 2018 错误
- graphql - Graphql 右括号位置
- opengl - 与 OpenGL 的重叠线
- javascript - 如何在 Chrome 分析/性能选项卡中阅读评估脚本时间