当前位置: 首页 > 面试题库 >

硒中的两个xpath测试

邵飞鸿
2023-03-14
问题内容

我尝试结合检查两种情况:

如果启动检查失败,我们将提供一个重试按钮:

el = WebDriverWait(self.driver, 10).until(
  EC.element_to_be_clickable((By.NAME, "Try again")))

否则,startupcheck成功后,我们将在自定义对象中收到一个pin输入请求

el = WebDriverWait(self.driver, 20).until(
  EC.element_to_be_clickable((By.XPATH, "//Custom/Edit")))

如何将其合并为一项检查而不必同时检查两项:我尝试了以下方法:

check = WebDriverWait(self.driver, 20).until(
  EC.element_to_be_clickable(
    (By.XPATH, "//Custom/Edit") or (By.NAME, "Try again")
))

但是仅or检查第一条语句。


问题答案:

您可以OR通过lambda表达式合并对using子句的两个元素的组合检查,如下所示:

el = WebDriverWait(driver, 20).until(lambda x: (x.find_element_by_name("Try again"), x.find_element_by_xpath("//Custom/Edit")))

替代解决方案是:

el = WebDriverWait(driver,20).until(lambda driver: driver.find_element(By.NAME,"Try again") and driver.find_element(By.XPATH,"//Custom/Edit"))

作为替代方案,您可以使用等效的css选择器组合两个元素的合并检查,如下所示:

el = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "[name='Try again'], Custom>Edit")))


 类似资料:
  • 本文向大家介绍硒中的xpath是什么?,包括了硒中的xpath是什么?的使用技巧和注意事项,需要的朋友参考一下 Xpath是Selenium中用于识别Web元素的最重要的定位器之一。它以以下方式工作- 它借助元素及其属性(用于标识)在文档对象模型(DOM)中导航。 尽管它有助于唯一地定位元素,但从其他定位器来看,它的速度较慢。 xpath用两种方式表示,即“ /”和“ //”。正斜杠表示绝对路径。

  • 我正在删除一个网络应用程序,我需要找到一个特定的元素,但我不能用我的xpath找到它。这是我试图找到元素的HTML代码 我成功地找到了它,但是当我注意到id是自动生成的时,我陷入了困境。我试图解决这个问题,找到包含文字“名字”的标签,然后找到兄弟姐妹,但什么都没有。这是我的xpath:

  • 问题内容: 我有这个HTML代码: 而且我必须选择带有text 的标签所标识的WebElement 。我尝试一些解决方案,例如: 但是每个人都给我: 正确的语法是什么?有人能帮我吗? 问题答案: 您没有正确的XPath语法。您需要在要匹配的文本属性值周围加上引号。尝试:

  • 我正在使用Ruby和Selenium web驱动程序测试一个webapp。我无法检查显示网页中单元格的内容。我想要的是td中的IP。 我使用Firefox插件firepath获取IP的Xpath。它给出了“html/body/div[1]/div[2]/div[3]/form/table/tbody/tr[1]/td[6]/ul/li”,看起来是正确的。 但是我无法显示IP。这是我的测试代码; 把

  • 我知道关于xpath有成千上万个简单的问题,但我不知道如何组合两个不太简单的表达式。。。 我的xml结构: 按类别选择 我知道通过在类后搜索可以选择div: 按文本选择 要选择我知道的span,我只需添加span,然后我想通过文本进行选择。对于该用例,我得到了xpath(这里的表单): 这些选择器都正常工作,但我想将它们结合起来 搜索类别“btn” 我试图这样想,但那不起作用测试示例: 即使有效,

  • 我正在尝试从网页复制一个文本元素并在我的控制台中打印它,作为对未来项目的测试。 这些是我收到错误时的行: 错误是这样的: 然后我的chomedrive关闭了。有什么问题?