我试图找到以下元素:
<span class="btn btn-default" onclick="close_terms_window();" style="" xpath="1">Next</span>
使用selenium webdriver。但我得到的信息是:
消息:没有这样的元素:无法定位元素:{"方法":"xpath","选择器":"//div[@id='terms-modal']/div//[@id='接受条款']//[@onClick="close_terms_window();"]"} (会话信息: chrome=74.0.3729.131)(驱动程序信息: chrome驱动程序=2.46.628402 (536cd7adbad73a3783fdc2Cab92ab2ba7ec361e1),平台=Windows NT 10.0.17134x86_64)
我使用了以下方法:
方法一:
time.sleep(4)
element_term = driver.find_element_by_xpath("//div[@id='terms-modal']/div//* [@id='acceptterms']//span[@onclick=\"close_terms_window();\"]")
方法2:
element_term = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH,"//span[contains(@class,'btn') and contains(@class,'btn-default)]")))`
方法三:
time.sleep(1)
element_term = driver.find_element_by_xpath("//div[@id='terms-modal']/div//*[@id='acceptterms']//*[@onclick=\"close_terms_window();\"]")
方法4:
使用CSS选择器:
time.sleep(4)
driver.find_element_by_css_selector("span.btn btn-default")
element_term = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH,"//span[contains(@class,'btn') and contains(@class,'btn-default)]")))
源代码快照:https://i.stack.imgur.com/tib3V.png
由于该元素位于模式对话框中,要定位并单击该元素,您必须引导WebDriverWait使元素成为可单击的(),您可以使用以下任一解决方案:
>
使用CSS\U选择器:
element = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "span.btn.btn-default[onclick^='close_terms_window']")))
使用XPATH:
element = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[@class='btn btn-default' and starts-with(@onclick,'close_terms_window')][contains(., 'Next')]")))
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support import expected_conditions as EC
WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//span[@class='btn btn-default')))
预期条件:
这些是自动化Web应用程序时经常使用的一些常见条件。
Selenium Python绑定提供了一些方便的方法,因此您不必自己编写预期的\u条件类或为它们创建自己的实用程序包。
我希望上面的xpath的输出能够定位selenium中的元素,但实际上我得到了错误。
因此,我一直在尝试使用selenium在python上定位用户名输入框。我尝试了xpath、id、类名等。 我还知道显式等待元素加载。然而,尽管如此,没有运气。我检查了元素是否在我忽略的iframe中,但找不到它。 这是用户输入框元素。 下面是我为定位元素而编写的代码。
问题内容: 我正在尝试搜寻房地产网站上的商品。它有一个aspx表单,必须在提交之前填写。 http://www.cbre.us/PropertyListings/Pages/Properties-for- Sale.aspx 我只关心俄勒冈州的多户家庭财产。所以这是我的第一次尝试: 当我运行此脚本时,出现错误“找不到元素“ ForSalePropertyType”。在这里我在做什么错? 问题答案:
我有一个粘性导航栏,它有几个列表元素,每个元素都包含href元素。当我试图定位元素时,我得到了错误。以下是我的HTML代码: 我想通过Webdriver定位Academic,我遇到这样的错误无法定位元素。
我喜欢在我的自动化框架中使用带有FindBy注释的PageFactory来自动定位我的页面对象类中的元素。 我有一个WebElement,我需要能够指定几个不同的定位器。我以为FindBys是我的解决方案,但显然这不是它的工作方式。它相当于Driver.FindElement(option1).FindElement.(option2)。那不是我需要的。我需要的东西,将找到一个元素的一个或其他定位
我正在尝试使用Python和Selenium获取此元素。 这就是我所尝试的: 我做错了什么?