Splinter是否可以使用browser.fill不用名称作为查询



我想使用绝对的XPath填充搜索栏。ID和类是动态生成的,没有名称变量或实例。因此,感觉就像我没有一个工具填充没有指定变量的工具。

有办法解决吗?我可以以某种方式更改绝对XPath以看起来像个名称分配,然后根据新的"类型"查询并填写我分配了绝对XPath?

如果在Splinter中不可用的话,是否有一种方法?

我已经选择了CSS,我发现此错误'selenium.common.exceptions.invalidelementStateException:message:element:element当前无法交互,并且可能无法操纵'

编辑:

<div class="type-ahead-input-container" role="search">
<div class="type-ahead-input-wrapper">
<div class="type-ahead-input">
<label class="visually-hidden" for="a11y-ember10393">
Search
</label>
<!---->
<input id="a11y-ember10393" class="ember-text-field ember-view" aria-
autocomplete="list" autocomplete="off" spellcheck="false" 
placeholder="Search" autocorrect="off" autocapitalize="off" role="combobox" 
aria-expanded="true" aria-owns="ember11064" data-artdeco-is-focused="true"/>
<div class="type-ahead-input-icons">
<!---->
</div>
</div>
<!---->
</div>
</div>

正如您问的Is there a method for this in Selenium时,答案是YES。

硒支持西库利。Sikuli可以自动在屏幕上看到的任何东西。它使用图像识别来识别和控制GUI组件。当无法轻松访问GUI的内部或源代码时,这很有用。

您可以在这里找到有关Sikuli的更多信息。

让我知道这是否回答了您的问题。

当您获得这样的错误消息时,可能是您的搜索结果不是您所期望的。可能是您获得的结果不止一个,即列表。在列表中,您无法输入。

您可以找到带有XPATH的输入框,从列表(通过尝试(中选择偏好的框,然后使用WebDreverlement _SET_VALUE方法在其中输入文本。这是不合适的,因为_是有用的。

input_list = browser.find_by_xpath('//div [@class =" type-ahead-input"]

input_list [1] ._ set_value('只是一个文本来查看它是否正在工作'(

相关内容

  • 没有找到相关文章

最新更新