我正在编写一个Python程序,该程序使用Selenium导航到高级搜索页面上的搜索框中并在搜索框中输入信息。本网站使用 Javascript,每次加载网站时,每个搜索框的 ID 和名称都会略有变化,但类名保持不变。类名经常被重用,所以我的目标是使用find_elements_by_class_name(类名),
然后通过该列表编制索引。
例如,一个框的类名是 x-form-text x-form-字段 x-表单-num-字段 x-form-空字段
,但我不能使用它,因为 selenium 认为它是一个复合类名并抛出一个错误。如果我只使用它的一部分,例如x表单文本
,它找不到元素。我的希望是找到一种方法来允许空格,或者,如果不能做到这一点,找到一种方法来搜索类名包含一段没有空格的文本的所有元素,例如x-form-text
。
任何帮助或想法将不胜感激!
编辑:
我试了一下这段代码:< code > quant minclass = ' x-form-text . x-form-field . x-form-num-field . x-form-empty-field ' quant min = ' 25 ' browser . find _ elements _ by _ CSS _ selector(quant minclass)[0]。send_keys(quantmin)
但是得到一个错误,列表索引超出了范围,这意味着它找不到任何东西。我检查了元素,这绝对是它的类名,所以我不确定如何继续。
如果您有带空格的类名(或其他 attrs),例如:
<div class="target with space or maybe another-long-text">Test 123</div>
这将工作:
driver.find_element_by_xpath("//div[@class='target with space or maybe another-long-text']")
尝试将类名转换为CSS选择器。
使用CSS选择器,名为x-form-text x-form-field x-form-num-field
的类变成. x-form-text. x-form-field. x-form-num-field
所以基本上只需用点替换空格,您就可以开始了。
这些是多个类,而不是带有空格的单个类,只需将所有类一起使用。
driver.find_element_by_css_selector('.class1.class2.class3')
在CSS选择器中,点。
是一个类,您可以连接任何数字类名
问题内容: 我有一个只具有href值作为属性的锚标记的href值。现在,我想在页面中找到与我的href值具有相同值的元素,然后单击它。我找不到使用标准selenium方法执行此操作的任何方法。如何执行此操作?基本上,这些是我找到的功能,但似乎无法使用其中任何一个: 问题答案: 您可以使用find_element_by_xpath功能。
问题内容: 我想识别该网络元素。它仅定义了这两个类。我不能执行以下操作,因为不使用空格分隔的值。什么是替代品? 问题答案: 我认为巴拉克·马诺斯的答案不能完全解释这一点。 想象一下,我们只有以下几个元素: XPath如何匹配 只匹配1个(完全匹配),巴拉克的答案 比赛1,比赛2和比赛3(比赛类别包含,课程顺序很重要) 匹配1、2、3和4(只要元素具有class 和) 同样,在这种情况下,Css S
我还尝试使用CSSSelector: 但WebDriver不断抛出一个异常,说明它无法找到该元素。有什么建议可以是什么问题吗?
问题内容: 精简版: 我想使用Nest编写一个elasticsearch查询,以获取已被索引的完整索引项(在我的情况下为自定义类型)。该查询受[somestring] + *(即String.StartsWith())的术语查询的约束,其中[somestring]可能包含空格,也可能不包含空格。 这与由于我需要检索完整对象而不是字符串建议而不同。 到目前为止,我已经尝试过: 当我查询没有空格的文本
问题内容: 以下定位技术之间有什么区别? 而且,从 性能角度来看 ,哪种方法是通过id定位元素的最快方法? 问题答案: 您的问题很难回答,肯定会给出一个结论性的答案。实际上,我很想将此问题标记为“太宽泛”,其他答案和评论也支持该问题。 以您的为例。纵观Selenium来源, 大多数 驱动程序只是获取您提供的ID,然后将其传递给有线协议: 如您所知,每个浏览器供应商都在单独的二进制文件中实现自己的有
请帮助我,我正在尝试选择一个图片,这是一个链接(一个网站上的培训师) 这是我的代码: