硒的webdriver - 隐藏的选择和锚[复制](Selenium WebDriver - hi

2019-06-28 04:50发布

可能重复:
硒的webdriver - get的选项从隐藏的选择

我有一个页面上选择一个大问题。

码:

<select name="fw3k_ad_input_et_type_group" class="" 
            id="_id_fw3k_ad_input_et_type_group" 
            onchange=" eurotax.change_type_group( this.value ); " 
            style="display: none; ">

        <option value="0"> --- odaberite tip --- </option>
        <option value="-1" class="special">> nema mog tipa  </option>
        <option value="16390">CD</option>
        <option value="17605">S</option>
        <option value="17636">SE</option>

</select>
<a href="" class="fs_item" id="fs_item_0" style=""> --- odaberite tip --- </a> 


视图:

http://imageshack.us/f/7/screenshotfrom201209111.png/

选择隐藏和A HREF =“”是取决于所选的选项,改变它的文本可见部分。

我真的不知道如何管理。 我可以得到JavascriptExecutor所有选项,我可以使用a.click()查看下拉框,但我不知道如何点击一些选项。

我曾尝试使用选择类和.getOptions()方法,但它并没有采用隐藏式选择工作,我不能改变A HREF =“”文本。

:(

请帮我一些例子。

Answer 1:

第一个方法:它不是单击使用相同的JS的任何元素的问题。 正如你知道如何得到任何选项remaning最后一个动作是进行点击。 这应该为你工作:

WebElement hiddenWebElement =driver.findElement(By(..selector of the element....));
        ((JavascriptExecutor)driver).executeScript("arguments[0].click()",hiddenWebElement);

第二个方式

String cssSelector= ...//i gave them in your previous question
JavascriptExecutor js = (JavascriptExecutor) driver;
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("var x = $(\'"+cssSelector+"\');");
        stringBuilder.append("x.click();");
        js.executeScript(stringBuilder.toString());

第三个办法:用行动制造商,拥有先进的用户操作的API。 你可以阅读一下这里和代码将是水木清华这样的:

WebElement mnuElement;
WebElement submnuElement;
mnEle = driver.findElement(By.Id("mnEle")).click();
sbEle = driver.findElement(By.Id("sbEle")).click();

Actions builder = new Actions(driver);
// Move cursor to the Main Menu Element
builder.moveToElement(mnEle).Perform();
// Giving 5 Secs for submenu to be displayed
Thread.sleep(5000L);
// Clicking on the Hidden SubMenu
driver.findElement(By.Id("sbEle")).click();

您也可以一些额外的信息在这里希望这在某种程度上可以帮助你)



Answer 2:

有点困惑与问题,但你有没有尝试过你

WebElement element = driver.findElement(By.id("fw3k_ad_input_et_type_group"));
Select select = new Select(element);

然后使用

select.selectByValue(value);
select.selectByVisibleText(text);
select.selectByIndex(index);


Answer 3:

driver.findElement(By.name("_id_fw3k_ad_input_et_type_group")).sendKeys("16390");

工作对我来说非常类似的东西。



文章来源: Selenium WebDriver - hidden select and anchor [duplicate]