编写网页硒代码时面临的问题

时间:2019-06-11 21:45:18

标签: selenium selenium-webdriver protractor

我正在尝试通过使用硒或量角器进行练习来自动化下面的网站,但是在选择表格中的下拉菜单时遇到了问题。它包含一些隐藏的DIV,我无法将其选择为常规列表。

当我们从第一个列表中选择选项时,将出现第二个列表。 https://www.mercurymagazines.com/pr1/100/10000

我在下面用量角器代码尝试过选择项

element(by.cssContainingText('option', '20,000-49,999')).click();
element(by.cssContainingText('option', 'Computers/Internet/Tech')).click();

尽管它选择了列表中的项目,但第二个列表不是通过代码来显示的。

需要使用硒或量角器使网站第二页自动化。

2 个答案:

答案 0 :(得分:0)

我认为您给定的代码无法从下拉列表中选择选项。它是从HTML元素 SELECT 中选择选项,但是大小为 1 * 1

它是如此之小,以致硒不可见,并且硒无法操纵网页上的不可见元素。

实际上,点击后下拉列表的扩展选项会动态添加到页面末尾的 BODY 标签附近。

您的代码应包括两个选择选项的步骤:

1),单击下拉菜单以展开其选项。

// click on Company Size drop down
element(by.css('div.form-group.company-size')).click();

2)从HTML DOM节点中选择选项,将其动态添加到页面末尾。

element(by.cssContainingText(
           'span.select2-container--open[style*="absolute"] li', 
           '20,000-49,999')
).click();

答案 1 :(得分:0)

尝试以下选项。在下面的方法中,您无需单击下拉列表并选择值。

const industry = element(by.css('div.form-group.industry > span'));
const companySize =  element(by.css('div.company-size > span'));

companySize.sendKeys('20,000-49,999');
industry.sendKeys('Computers/Internet/Tech');