我尝试使用Selenium抓取网页,但是当我尝试传递按钮的XPath时,我得到一个错误,说这个元素不存在。我尝试了另一个网站,它工作得很好。我也试过使用Puppeteer,但遇到了同样的问题。当我在页面控制台中为我试图单击的按钮执行$('. selector')时,它返回一个对象x.fn.init [prevObject:x.fn.init(1)]。我不知道如何使用它来与元素本身交互,但我相信这个问题围绕着它。
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://senamhi.gob.bo/index.php/sysparametros')
open_window_elem = driver.find_element("xpath", '//*[@id="myModal"]/div/div/div')
action = ActionChains(driver)
action.move_by_offset(500, 200)
action.click()
action.perform()
y_coordinate = open_window_elem.location["y"]
x_coordinate = open_window_elem.location["x"]
action = ActionChains(driver)
action.move_by_offset(x_coordinate, y_coordinate)
action.click()
action.perform()
sleep(20)
driver.find_element('xpath', '/html/body/app-root/app-public-template/app-public-base/app-public-stations-info-export/div/div/div/div[2]/button').click()
点击屏幕上的某个地方的一部分是工作,因为当我进入页面,似乎有一个弹出窗口,需要点击某处解散。然后,一个带有按钮的屏幕出现,我无法访问。
1条答案
按热度按时间ffscu2ro1#
正如你在HTML中看到的,你想要点击的元素在
object
元素中。在与
object
或iframe
中的任何元素交互之前,您需要指示selenium切换到该对象,与您想要交互的元素交互,然后切换回默认上下文。