Python硒无法点击

问题描述 投票:0回答:2

我想找到一个输入元素,然后单击它。但是有一个错误。我搜索了很多答案,但对我来说不起作用。我认为thenre在页面(http://plantpan.itps.ncku.edu.tw/promoter.php)中没有特殊功能。 selenium.common.exceptions.WebDriverException: Message: unknown error: Element <input name="submit" type="SUBMIT" value="Search"> is not clickable at point (84, 595). Other element would receive the click: <html lang="en">...</html>

下面的代码


#!/usr/bin/env python
# -*- coding: utf-8 -*-

from selenium import webdriver
from time import sleep
from bs4 import BeautifulSoup
import re


driver = webdriver.Chrome()
driver.get("http://plantpan.itps.ncku.edu.tw/promoter.php")
#clear input
driver.find_element_by_name('sequence').clear()
# input 
driver.find_element_by_name('sequence').send_keys('>11111\nTTTGGTTGGGTTTGGGTTTGGGTGTGTTGTGT')
sleep(5)
#choose all species
driver.find_element_by_css_selector("input[type='radio'][value='allspecies']").click()
#driver.find_element_by_xpath("//*[@id='promoter']/font[2]/input[2]").click()
#submit
submit = driver.find_element_by_css_selector("input[type='SUBMIT'][value='Search']")
submit.click()
driver.implicitly_wait(2)
# get 
result = driver.page_source
soup = BeautifulSoup(result, 'html.parser')

button = driver.find_element_by_link_text("<img src='./img/search/download_analysis_result.png'/>")
button.click()
driver.implicitly_wait(3)



#获取当前的URL的地址
#关闭浏览器
sleep(2)
driver.close()

python html selenium
2个回答
0
投票

尝试查找元素以确保能够找到它们并处于适当状态时,您将使用等待和期望条件。

替换

submit = driver.find_element_by_css_selector("input[type='SUBMIT'][value='Search']")

with

submit = wait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[type='SUBMIT'][value='Search']")))

您将需要添加以下内容:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.support import expected_conditions as EC

0
投票

尝试执行js单击元素

element = driver.find_element_by_css_selector("input[type='SUBMIT'][value='Search']")
driver.execute_script("arguments[0].click();", element)

如果网站有一些延迟,请添加等待,然后执行单击。

from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 10)
element = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[type='SUBMIT'][value='Search']")))
© www.soinside.com 2019 - 2024. All rights reserved.