我想点击网络邮件应用程序中的搜索自动完成BUTTON
。
<button class="_n_r ms-bg-color-themeLight-hover o365button _n_s ms-bg-color-themeLighter ms-font-color-neutralPrimary ms-border-color-themePrimary" type="button" autoid="_n_4" aria-label="Activate Search Textbox">
<span class="_n_u owaimg ms-Icon--search ms-icon-font-size-20 ms-fcl-ts-b"/>
<span class="_n_t ms-font-weight-semilight ms-font-color-neutralPrimary">Search Mail and People</span>
点击BUTTON
后,我们会收到INPUT
<input class="_is_x ms-font-weight-semibold ms-font-color-neutralPrimary ms-bg-color-themeLight ms-bg-color-themeLight-hover allowTextSelection textbox ms-font-s ms-fwt-sl ms-fcl-np ms-bcl-nta ms-bcl-nsa-h hideClearButton" autoid="_is_3" role="combobox" aria-autocomplete="list" aria-label="Search mail and people, type your search term then press enter to search."/>
尝试使用输入中的类名时,我收到以下错误。
&#34;给定的选择器_n_r ms-bg-color-themeLight-hover o365button _n_sms-bg-color-themeLighter ms-border-color-themeLighter无效或不会产生WebElement。发生以下错误:InvalidSelectorError:不允许使用复合类名称&#34;
我们尝试使用selenium IDE获取值,但我们只得到xpath。有没有办法找到自动完成搜索字段而不使用xpath?
答案 0 :(得分:0)
那个INPUT
上有很多课程。 :)我会使用不同的属性。我将从其中一个开始,看看哪个适合你。你没有指定你正在使用的语言,所以这里有一些Java代码。
driver.findElement(By.cssSelector("input[autoid='_is_3']"));
driver.findElement(By.cssSelector("input[aria-label='Search mail and people, type your search term then press enter to search.']"));
快速记录,因为你问的是课程。你可以去类路由并使用CSS选择器来查找它们。一个简单的例子。
<button class="one two">
您可以使用
找到上面的BUTTON
driver.findElement(By.cssSelector("button.one.two"));
句点(。)表示CSS类,因此在每个类名之前需要一段时间。您不一定需要包含所有类,只能使元素唯一,以便您可以找到它。