1

我作为新手和新手开发人员与 Selenium 一起工作。我尝试解决这个 XPath 但没有结果,这就是我寻求帮助的原因。

因此,我想单击具有动态 id 的复选框,但根据 tittle="Viewers" 找到此复选框并不容易

请注意,在 div 中的复选框右侧有一个完整的复选框列表,我想将其包含在我的测试中。

HTML:

<span class="row-selection"><input type="checkbox" value="on" id="gwt-uid-2215" tabindex="0"><label for="gwt-uid-2215"></label></span> <div class="row-label" title="Viewers">Viewers</div>

快照;

提供的代码

4

1 回答 1

0

所需的元素是启用GWT的元素,因此要单击必须为WebDriverWait诱导的元素element_to_be_clickable(),您可以使用以下基于Locator Strategy之一:

  • 使用基于title属性的xpath :

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@title='Viewers']//preceding::span[1]//label"))).click()
    
  • 使用基于innerHTML的xpath

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[text()='Viewers']//preceding::span[1]//label"))).click()
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
于 2020-07-13T23:23:23.407 回答