在官方W3c webdirver文档中,明确指出位置策略是:
State Keyword
CSS selector "css selector"
Link text selector "link text"
Partial link text selector "partial link text"
Tag name "tag name"
XPath selector "xpath"
Run Code Online (Sandbox Code Playgroud)
但是,Selenium的电线协议允许:
class name
css selector
id
name
link text
partial link text
tag name
xpath
Run Code Online (Sandbox Code Playgroud)
在理论中,Selenium的文档已经过时,"真实"的故事在新的规范文档中.然而...
我在最新的Chrome自己的Webdriver上运行了一些测试,我可以确认这一点,name并且class name两者都有效; 但是,它们不符合规格.
我记得在Chromium问题上阅读他们只会实现官方的Webdriver规范.
现在:我知道通用答案,其中"规格并不总是100%遵循"等.但是,我想知道的是:
javascript selenium google-chrome chromium chrome-web-driver
我正在使用Selenium的python库从Firefox中的html页面中抓取数据.
我不得不从Selenium 2.0更新到2.21因为服务器已经更新了Firefox.
在v 2.21中,调用find_element_by_class_name("grid-cell-inner grid-col-name")失败:
selenium.common.exceptions.WebDriverException: Message: u'Compound class names not permitted'
Run Code Online (Sandbox Code Playgroud)
我尝试访问的元素的类名是 grid-cell-inner grid-col-name
调用find_element_by_class_name()工作在v 2.2,所以逻辑是正确的,并且以前找到的数据没问题.第2.21节中有些变化.
所有Selenium示例都给出了类名foo等的简单示例,而没有我需要访问的名称类型.
为什么Selenium停止支持查找类似名称的类grid-cell inner grid-col-name,以及它们的解决方案是什么?
有人可以帮我找到带有"复合"类名的元素吗?
谢谢.
当我尝试使用class = "country name"在页面对象中有空格的类名时,我得到:
Compound class names not permitted Selenium::WebDriver::Error::UnknownError)
Run Code Online (Sandbox Code Playgroud)
如何使用具有空格的类名.
例如:
class = "country name"
Run Code Online (Sandbox Code Playgroud) 什么是硒?
当您打开Selenium的官方页面时,您首先读到的是“什么是Selenium?”中的“ Selenium automates browser”。部分。“硒的哪个部分适合我?”部分 下面提供了Selenium WebDriver和Selenium IDE之间的选择。据此,我推断出Selenium是工具的集合,该集合包括IDE,WebDriver API(语言绑定),Grid,Selenium Standalone Server,浏览器驱动程序。必须下载适当的文件才能构建项目。
什么是WebDriver?
WebDriver是一个API。它用多种语言编写,这些语言称为语言绑定。API具有控制浏览器的功能。您可以使用这些功能编写脚本来以所需的方式(测试用例)控制浏览器。
这就是我所知道的。如果我错了,请纠正我。我想从面试的角度知道这两个问题的答案。
我试图单击以下类名 equals 的元素"clean right":
<li class="clean right"></li>
Run Code Online (Sandbox Code Playgroud)
我怎样才能通过使用找到它driver.find_element_by_class_name()
Python / Django API中的Selenium具有功能driver.find_element / elements_by_class_name(),但未编写是否可用于多个类。我需要选择具有bj,bd,bi等多个类的元素。
我正在尝试通过webWhatsapp从聊天中打印我的消息之一。
我可以通过“控制台”选项卡中的Javascript完成此操作
recived_msg = document.getElementsByClassName('XELVh selectable-text invisible-space copyable-text') // returns an array of the chat
recived_msg[5].innerText // shows me the 4th message content
Run Code Online (Sandbox Code Playgroud)
问题是我试图在python上做同样的事情,但对我不起作用。
这是我尝试过的:
from selenium import webdriver
recived_msg = driver.find_element_by_class_name('XELVh selectable-text invisible-space copyable-text')
final = recived_msg[5].innerText #doesnt work for some reason
Run Code Online (Sandbox Code Playgroud)
我遇到的错误是:消息:无效的选择器:不允许使用复合类名
我对javascript有点陌生,所以很抱歉造成误会,并感谢您的帮助!:)
selenium ×6
python ×3
webdriver ×3
xpath ×2
api ×1
chromium ×1
classname ×1
django ×1
javascript ×1
pageobjects ×1
parsing ×1
python-3.x ×1