我想检查以下XPath的Selenium Web驱动程序是否可见/存在/检测到元素:
//*[@data-animate-modal-popup="true"]
当元素可见/存在/检测到时,是否有任何Selenium函数返回TRUE或FALSE?
上次我使用了下面的IF-Else
phone_number_invalid = driver.find_element_by_xpath('//*[@data-animate-modal-popup="true"]')
if phone_number_invalid:
code here .....
每当未找到元素时,find_element\u by_xpath
总是抛出一个错误。我只想在元素可见/存在/检测时得到TRUE或FALSE。
非常感谢。
对于您的问题,您是否已经找到了该元素,或者需要检查在执行某些操作后该元素是否可见?
从元素中显示使用方法。例如:
# you have located element and assign it to elem
visibility = elem.is_displayed()
print(visibility) # will print True or False
使用fluent wait,并使用try except将其包装。
from selenium.common.exceptions import TimeoutException
def check_visible_by_xpath(xpath, timeout=2):
# Will actively search for the element in 2 seconds.
# If found, return True and stop waiting.
# If 2 seconds threshold reaches, return False (cannot find it visible in 2 seconds)
try:
element = WebDriverWait(driver, timeout).until(
EC.visibility_of_element_located((By.XPATH, xpath)))
return True
except TimeoutException:
return False
# ...
# Some actions here
type_in_phone_number()
# Now you want to check, if after your previous action, something pops up??
visibility = check_visible_by_xpath('//*[@data-animate-modal-popup="true"]', 2)
# check and do something about it
if visibility:
action_if_visible()
else:
action_if_not_visible()
https://chrome.google.com/webstore/detail/xpath-helper/hgimnogjllphhhkhlmebbmlgjoejdpjl?hl=en
https://chrome.google.com/webstore/detail/xpath-finder/ihnknokegkbpmofmafnkoadfjkhlogph?hl=en
没有本地元素来检查元素是否存在,您可以使用:
创建一个函数:
public boolean isElementPresent(By by){
try{
driver.findElement(by);
return true;
}
catch(NoSuchElementException e){
return false;
}
}
现在在if的情况下调用它:
if(isElementPresent(By.xpath("//div[contains(text(),'Report name already exists. Please enter another name.')]")))
{
//code
}
else if(isElementPresent(By.xpath("//div//span[contains(text(),'Grid Report saved successfully.')]")))
{
//code
}
第二种选择:
List<WebElement> element1 = driver.findElement(By.xpath("//div[contains(text(),'Report name already exists. Please enter another name.')]"));
List<WebElement> element2 = driver.findElement(By.xpath("//div//span[contains(text(),'Grid Report saved successfully.')]"));
if(element1.isEmpty() )
{
//first set of code
}
else if(element2.isEmpty())
{
//second set of code
}
第二个选项有更多的处理,所以更推荐第一个选项
问题内容: 有什么方法可以检查元素在纯JS(无jQuery)中是否可见? 因此,例如,在此页面中:PerformanceBikes,如果将鼠标悬停在Deals上(在顶部菜单上),则会显示一个交易窗口,但开始时未显示。它在HTML中,但不可见。 那么,给定一个DOM元素,我如何检查它是否可见?我试过了: 但它似乎不起作用。我想知道应该检查哪些属性。我想到: 还有其他我可能会想念的东西吗? 问题答案:
有没有什么方法可以让我检查一个元素在纯JS(没有jQuery)中是否可见? 例如,在这个页面:Performance Bikes中,如果你将鼠标悬停在Deals(在顶部菜单上)上,就会出现一个Deals窗口,但一开始并没有显示出来。它在HTML中,但不可见。 那么,给定一个DOM元素,我如何检查它是否可见呢?我试过: 还有其他我可能失踪的吗?
本文向大家介绍如何检查可见DOM中是否存在元素?,包括了如何检查可见DOM中是否存在元素?的使用技巧和注意事项,需要的朋友参考一下 我们可以使用Node.contains方法执行此检查。Node.contains()方法返回一个布尔值,该值指示节点是否为给定节点的后代,即节点本身,其直接子级(childNodes)之一,子级的直接子级之一,依此类推。 示例 例如,您要查找具有id test的元素,
我有一对夫妇的变量,我想保存或不保存到数据库取决于是否我已经设置为隐藏/可见的javascript函数,我已经搜索了一段时间,但找不到任何东西。谢谢!
问题内容: 使用和,我一直在页面上隐藏/显示一个元素,但是有两个按钮,一个用于隐藏,一个用于显示。我现在想要 一个按钮来同时切换 两者 。 我的HTML / JavaScript是这样的: 我想要的HTML / JavaScript: 如何检测元素是否可见? 问题答案: 您正在寻找: 尽管您可能考虑到仍在其他地方使用它,但应该将选择器更改为使用jQuery: 重要的是要注意,如果目标元素的父元素中
问题内容: 如果该元素是通过方法创建的,如何检查该元素是否存在? 对我不起作用。 问题答案: 对我不起作用。 您需要在元素ID之前添加: 使用香草JavaScript,不需要例如hash(),但是使用jQuery时,确实需要像基于CSS一样将哈希放入目标元素。