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

在Selenium中使用XPath选择器'following-sibling :: text()'(Python)

宫铭
2023-03-14
问题内容

我正在尝试使用Selenium(在Python中)从网站中提取一些信息。我一直在使用XPaths选择元素,但是在使用以下同级选择器时遇到了麻烦。HTML如下:

<span class="metadata">
    <strong>Photographer's Name: </strong>
    Ansel Adams
</span>

我可以选择“摄影师的名字”

In [172]: metaData = driver.find_element_by_class_name('metadata')

In [173]: metaData.find_element_by_xpath('strong').text
Out[173]: u"Photographer's Name:"

我试图选择标记后的文本部分(示例中为“ Ansel Adams”)。我以为我可以使用以下同级选择器,但收到以下错误:

In [174]: metaData.find_element_by_xpath('strong/following-sibling::text()')
ERROR: An unexpected error occurred while tokenizing input
The following traceback may be corrupted or invalid
The error message is: ('EOF in multi-line statement', (328, 0))
... [NOTE: Omitted the traceback for brevity] ...
InvalidSelectiorException: Message: u'The given selector strong/following-sibling::text() is either invalid or does not result in a WebElement. The following error occurred:\n[InvalidSelectorError] The result of the xpath expression "strong/following-sibling::text()" is: [object Text]. It should be an element.'

有什么想法为什么这不起作用?


问题答案:

@RossPatterson是正确的。麻烦在于文本“ Ansel Adams”不是a
WebElement,因此您不能使用find_elementfind_elements。如果您将HTML更改为

<span class="metadata">
    <strong>Photographer's Name: </strong>
    <strong>Ansel Adams</strong>
</span>

然后find_element_by_xpath('strong/following-sibling::*[1]').text返回“ Ansel
Adams”。



 类似资料:
  • 问题内容: 我正在进行的一个项目正在与ios应用程序同时开发一个Web应用程序(出于同一目的),我希望能够使用现有的Selenium测试,但是选择器遇到了麻烦。是否存在可用于Selenium Webdriver和Appium ios的选择器类型或属性名称,因此我可以将变量设置为浏览器或应用程序,并且它们可以在两者上运行并起作用。该项目中没有人以前使用过Appium,因此我们缺乏很多知识。 我尝试使

  • 如何只选择父级而不选择子级? List summaryLinks=summary.findelements(by.xpath(“”));

  • 我在Firefox中使用Firebug为没有分配ID的链接获取xpath。该链接是一个带有图像作为实际按钮的javascript链接。我希望能够单击此链接,但它不起作用。 实际的xpath是'/html/body/div[2]/div/div/div[3]/div/div/table/tbody/tr[1]/td[2]/form/table/tbody/tr[1]/td/div[1]/div/ta

  • 我有一个HTML页面中的一长串表。以下只是列表的一小部分。 我想检查

  • 问题内容: 考虑使用以下HTML: 我想单击abc,但是包装div可能会更改,所以 不是我想要的 我试过了: 但这不适用于更深层的嵌套 有任何想法吗? 问题答案: 的HTML 您可以将 XPATH 用作: 输出 也就是说,您的Python代码应为:

  • 我正在编写一个可重用的代码来寻找自动化测试的元素。在上面的代码中,可以通过两种方式找到元素,我可以根据或通过文本查找它;但是我在硒中找不到任何东西,我可以用我想要的方式找到元素。 我正在使用“find_element”来查找元素,但是没有任何东西可以传递或作为论据。 我尝试了-或 无论如何,我可以在webview上找到使用Selenium驱动程序和一些文本作为其论据的元素吗??