首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我正在尝试点击一个具有以下html结构的按钮:无法单击"English“按钮。上面说没有这样的元素。试用Xpath

我正在尝试点击一个具有以下html结构的按钮:无法单击"English“按钮。上面说没有这样的元素。试用Xpath
EN

Stack Overflow用户
提问于 2021-08-24 09:32:35
回答 2查看 109关注 0票数 1

无法单击“英语”按钮。它说不存在这样的元素。

尝试了以下和选择方法。

代码语言:javascript
复制
element = WebDriverWait(driver, 40).until(expected_conditions.element_to_be_clickable((By.XPATH, "/html/body/content/main/div/form")))
select = Select(driver.find_element_by_css_selector("label[for='language-MCQ'] span[class='me-2']"))

  1. 代码块:

代码语言:javascript
复制
<input class="form-check-input d-none lang-list" type="checkbox" id="language-MCQ" name="language_ids[]" value="1" wire:model="language_ids.0" wire:change="addLanguageQuestions(1)">
<label class="form-check-label d-flex flex-nowrap align-items-center rounded-pill btn btn-lg btn-lang-select text-white cursor-pointer" for="language-MCQ">
   <span class="me-2">
       English
   </span>
</label>
<div class="form-check ps-0 me-3">
                            <input class="form-check-input d-none lang-list" type="checkbox" id="language-Kannada" name="language_ids[]" value="2" wire:model="language_ids.1" wire:change="addLanguageQuestions(2)">
                            <label class="form-check-label d-flex flex-nowrap align-items-center rounded-pill btn btn-lg btn-lang-select text-white cursor-pointer" for="language-Kannada">
                                <span class="me-2">
                                    Kannada
                                </span>

                            </label>
                        </div>
EN

回答 2

Stack Overflow用户

发布于 2021-08-24 09:46:30

您是否尝试过这个xpath:

代码语言:javascript
复制
//span[text()='English']

如果您不希望使用text()

代码语言:javascript
复制
//label[@for='language-MCQ']/span

而且这看起来不对

代码语言:javascript
复制
select = Select(driver.find_element_by_css_selector("label[for='language-MCQ'] span[class='me-2']"))

注意,Select只适用于html选择标记。

票数 0
EN

Stack Overflow用户

发布于 2021-08-24 11:45:20

为了最小化出现任何类型异常的可能性,建议将xpath指向交互式元素,在本例中,spanlabel不是交互式元素,而是input标记。

您可能的xpath解决方案可以是-

代码语言:javascript
复制
.//span[contains(text(),'English')]/ancestor::label/preceding-sibling::input

代码语言:javascript
复制
.//input[@id='language-MCQ']

代码语言:javascript
复制
.//label[contains(@class,'btn-lang-select')]/preceding-sibling::input[@value='1']

像这样的东西应该管用-

代码语言:javascript
复制
element = WebDriverWait(driver, 40).until(expected_conditions.element_to_be_clickable((By.XPATH, ".//span[contains(text(),'English')]/ancestor::label/preceding-sibling::input")))

element.click()

如果上面的xpath没有使用显式等待和预期条件,那么check元素应该在iframe中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68905117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档