Selenium 无法使用 xpath 或 ClassName 或 Css 选择器(Python)找到元素

问题描述 投票:0回答:2
python selenium-webdriver xpath css-selectors webdriverwait
2个回答
0
投票

元素在

iframe
里面,为了到达元素,你需要先切换到iframe。

使用

WebDriverWait()
并等待
frame_to_be_available_and_switch_to_it()
然后
WebDriverWait()
等待
element_to_be_clickable()
。您可以使用下面的
css selector
来唯一标识元素。

WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR, "iframe[name='callout']")))
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button[aria-label='No, thanks']"))).click()

导入以下库。

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

-1
投票

嗯……举个例子:

from selenium import webdriver
from selenium.webdriver.firefox.service import Service as FirefoxService
from webdriver_manager.firefox import GeckoDriverManager
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By

service = FirefoxService(executable_path=GeckoDriverManager().install())
driver = webdriver.Firefox(service=self.service)

driver.get("http://www.google.com.ar/")

search_bar = driver.find_element(By.CSS_SELECTOR, "[name='q']")
search_bar.send_keys("hello world")
search_bar.send_keys(Keys.ENTER)

driver.implicitly_wait(5)
h1 = driver.find_element(By.TAG_NAME, 'h1')
print(h1.value_of_css_property('color'))

driver.quit()

您还需要安装依赖项 webdriverwebdriver_manager

关于点击: 在这里输入链接描述

© www.soinside.com 2019 - 2024. All rights reserved.