当前位置: 首页 > 知识库问答 >
问题:

WebDriver忽略以下Xpath内容:

邵子平
2023-03-14

这是我的xpath:

(//td['displaytablecell']/span[text()='Name1']/../preceding-sibling::td[@class='ui-selection-column']/p-dtcheckbox/div/div[1]/input)[1]

Selenium WebDriver代码忽略了上述xpath中::之后的所有内容。

下面是当我在上面使用xpath作为定位器来标识页面中的元素时,在selenium中遇到的错误。

Exception occured: org.openqa.selenium.InvalidSelectorException: invalid selector: Unable to locate an element with the xpath expression (//td['displaytablecell']/span[text()='Name1']/../preceding-sibling because of the following error:
SyntaxError: Failed to execute 'evaluate' on 'Document': The string '(//td['displaytablecell']/span[text()='Name1']/../preceding-sibling' is not a valid XPath expression.

关于如何让webdriver接受上面的整个xpath,有什么想法或建议吗?

下面是HTML代码:

<td class="ui-selection-column" ng-reflect-ng-class="[object Object]" ng-reflect-ng-style="[object Object]" style="width: 38px; display: table-cell;">
<!--template bindings={ "ng-reflect-ng-if": "true" }-->
    <span class="ui-column-title"/>
    <p-dtcheckbox>
        <div class="ui-chkbox ui-widget">
            <div class="ui-helper-hidden-accessible">
                <input type="checkbox"/>
            </div>
            <div class="ui-chkbox-box ui-widget ui-corner-all ui-state-default" ng-reflect-klass="ui-chkbox-box ui-widget ui-corner-all ui-state-default" ng-reflect-ng-class="[object Object]">
        </div>
    </p-dtcheckbox>
</td>
<!--template bindings={ "ng-reflect-ng-if": "true" }-->
<td ng-reflect-ng-class="[object Object]" style="display: table-cell;">

以下是WebDriverJava代码:

    @Test
        public void test_byxpath(){

            WebDriver driver = new ChromeDriver();

            driver.get("http://somesite.com");

            WebElement element = driver.findElement(By.xpath("(//td[@style='display: table-cell;']/span[text()='Name1']/../preceding-sibling::td[@class='ui-selection-column']/p-dtcheckbox/div/div[2])[1]"));    
                System.out.println("Test7 number of elements: " + elements.size());
          element.click();
}

元素是一个复选框,我试图通过应用方法来检查它。单击()。

下面是我在Eclipse中得到的结果:

Retrieving object of type 'xpath' and value '(//td[@style='display' from the object map
2017-01-25 16:52:09 -- INFO  automation.utilities.EventHandlerListener:102 - Trying to Find By.xpath: (//td[@style='display.
2017-01-25 16:52:10 -- INFO  automation.utilities.EventHandlerListener:98 - Exception occured: org.openqa.selenium.InvalidSelectorException: invalid selector: Unable to locate an element with the xpath expression (//td[@style='display because of the following error:
SyntaxError: Failed to execute 'evaluate' on 'Document': The string '(//td[@style='display' is not a valid XPath expression.
  (Session info: chrome=53.0.2785.143)

共有1个答案

商经业
2023-03-14

如果这不起作用。。然后可以尝试不同的xpath://td[span[text()=“Name1”]/前面的同级::td[@ui-selection-column']//div[contains(@class,'ui-chkbox-box')/]

 类似资料:
  • 假设您有以下pyspark数据帧: 接下来的两个代码块应该做同样的事情-即,如果列不是<code>null<code>则返回该列的大写。但是,第二种方法(使用<code>udf</code>)会产生错误。 方法1:使用< code > py spark . SQL . functions . upper() 方法 2: 在 内部使用 这给了我< code > attribute error:“No

  • 我是测试自动化的新手。当我用目标通过Firepath定位元素时: Firefox创建该元素并验证文本。但是,当我试图用Visual Studio 2012和Selenium Web驱动程序定位该元素时,我总是出现错误:“无法定位元素:{”method“:”XPath“,”Selector“:”//td[contains(@id,'CatProdTD_4723290')]/div/div[2]/h2

  • 问题内容: 我正在开发一个使用Spring-boot,关系数据库和Elasticsearch的应用程序。 我在代码的2个不同位置使用JSON序列化: 在REST API的响应中。 当代码与Elasticsearch交互时。 我在Elasticsearch中需要一些属性,但我想向应用程序用户隐藏(例如,来自关系数据库的内部ID)。 这是一个实体的例子: 问题 :当对象持久化在Elasticsearc

  • 问题内容: 当我加载页面时,HtmlUnit引发异常并使测试崩溃 ReferenceError:未定义“ x”。(net.sourceforge.htmlunit.corejs.javascript.EcmaError) 如果我使用Firefox驱动程序,则不会引发任何异常。 或为HtmlUnit驱动程序禁用JavaScript 我无法更改测试页上的代码并解决问题,因此我需要忽略它,或者以任何方式

  • 问题内容: 我使用XPather浏览器检查HTML页面上的XPATH表达式。 我的最终目标是在Selenium中使用这些表达式来测试用户界面。 我得到了一个HTML文件,其内容类似于以下内容: 我想选择一个包含字符串“ ” 的文本的节点。 使用“ abc”这样的普通字符串不会有问题。我使用类似于的XPATH 。 当我尝试使用类似的XPATH时,不会返回任何内容。关于带有“ ”的文本是否有特殊规定?