相关疑难解决方法(0)

WebDriver中不支持复合类名称错误

我有一种方法来计算元素的数量divs并返回它们的数量.

 public int getNumberOfOpenBets() {

     openBetsSlip = driver.findElement(By.id("form_open_bets"));
     openBets = openBetsSlip.findElements(By.className(" cashout_noCash"));
     return openBets.size();
 }
Run Code Online (Sandbox Code Playgroud)

这是页面源

<form id="form_open_bets" method="post" name="form_open_bets">
    <input type="hidden" value="" name="action">
    <input type="hidden" value="" name="bet_id">
    <input type="hidden" value="" name="cashout_price">
    <input id="target_page" type="hidden" value="" name="target_page">
    <div id="By.id" class="slipWrapper ">
        <div id="openBets_header"></div>
        <div id="cashout_1626" class=" cashout_noCash">
            <div id="cashout_1625" class=" cashout_noCash">
                <div id="cashout_1615" class=" cashout_noCash">
                    <div id="cashout_1614" class=" cashout_noCash">
                        <div id="cashout_1613" class=" cashout_noCash">
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</form>
Run Code Online (Sandbox Code Playgroud)

WebDriver抛出以下错误:不支持复合类名.考虑搜索一个类名并过滤结果或使用CSS选择器.

org.openqa.selenium.InvalidSelectorException: Compound class names are not supported. …
Run Code Online (Sandbox Code Playgroud)

css java selenium webdriver selenium-webdriver

11
推荐指数
2
解决办法
3万
查看次数

如何避免Page Object中的复合类名错误?

当我尝试使用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 pageobjects page-object-gem selenium-webdriver

11
推荐指数
1
解决办法
4万
查看次数

Selenium Python - 通过带空格的类名查找元素

我正在编写一个 Python 程序,该程序使用 Selenium 导航到高级搜索页面上的搜索框中并将信息输入到搜索框中。本网站使用 Javascript,每次加载网站时,每个搜索框的 ID 和名称都会略有变化,但类名称保持一致。类名经常被重用,所以我的目标是使用find_elements_by_class_name(classname)该列表然后索引。

例如,一个盒子有 class name x-form-text x-form-field x-form-num-field x-form-empty-field,但我不能使用它,因为 selenium 认为它是一个复合类名并引发错误。如果我只使用其中的一部分,例如x-form-text,则无法找到该元素。我的希望是找到一种允许空格的方法,或者,如果不能这样做,则找到一种方法来搜索其类名包含一段没有空格的文本的所有元素,例如x-form-text.

任何帮助或想法将不胜感激!

编辑:

我试过这个代码: quantminclass = 'x-form-text.x-form-field.x-form-num-field.x-form-empty-field' quantmin = '25' browser.find_elements_by_css_selector(quantminclass)[0].send_keys(quantmin)

但是得到列表索引超出范围的错误,这意味着它找不到任何东西。我检查了元素,这绝对是它的类名,所以我不确定如何继续。

python selenium

6
推荐指数
1
解决办法
2万
查看次数

选择器无效:使用Webdriver和Python的find_element_by_class_name不允许使用复合类名

我正在尝试通过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有点陌生,所以很抱歉造成误会,并感谢您的帮助!:)

xpath webdriver css-selectors python-3.x selenium-webdriver

1
推荐指数
1
解决办法
815
查看次数